2015-05-27 45 views
0

我正在設計一組C++渲染API。所有這些都是在Linux和Windows平臺下以共享庫的形式完成的。現在我想將它們移植到VxWorks(版本5.5漂亮的舊版本)。許多第三方庫需要移植,例如。 OpenSSL的,sqlit3,wxWidgets的...我可以將共享庫從Linux(或Windows)移植到Vxworks 5.5嗎?

我的問題是:

是可能的VxWorks 5.5,如果沒有對代碼本質的變化?

如果這是不可能的。更高版本的VxWorks會做什麼?

VxWorks 5.5支持共享庫嗎?

順便說一下,OpenGL的OpenGL需要更高版本的VxWorks嗎?

+0

首先,爲了高效使用OpenGL,您需要一些VxWorks驅動程序所在的GPU。當然你可以使用軟件實現。 – datenwolf

+1

在VxWorks上,任何目標文件(爲VxWorks編譯)都是某種共享庫,因爲目標文件的所有非靜態函數都被添加到系統符號表中,因此可以被其他任務訪問。 –

回答

0

首先檢查文檔,瞭解所有庫已經支持並且可以包含在VxWorks項目中。例如,我們在我們的項目中使用openssl庫。 5.5確實支持我們使用libcrypto.a的共享庫。不支持的庫需要移植。

關於openGL,如果它符合您的要求,您可以檢查這個project

0

您可以非常高興地在VxWorks 5.5中創建獨立的庫,您可以通過兩種方式創建一個歸檔,它基本上是一個靜態庫,您可以將其構建到應用中,或者將庫構建爲另一個可下載的模塊,當你在VxWorks中加載時,它會動態鏈接。

OpenGL版本將取決於您擁有的圖形驅動程序和硬件,而不是VxWorks的版本(除了您需要VxWorks版本的圖形驅動程序版本)。

移植第三方庫大多是好的,VxWorks在語言上非常類似於linux。我在列表中知道的唯一一個是sqlite3,我在移植一段時間後需要做一些修改,因爲有些命令在VxWorks 5.5中不適用於創建內存數據庫,但那是一個長期現在可能已經改變了。