我一直在閱讀OpenGL遊戲的跨平臺開發。我們正在研究開發一款遊戲,Linux用戶也可以使用它。然而,我卻遇到了一些我不太感興趣的東西。便攜式Linux與OpenGL/Mesa3D兼容的可執行文件
如何創建一個可移植的linux可執行文件?特別是如何讓各種不同版本的OpenGL/Mesa3D在一個(或多個)可執行文件中工作(我們不想分發源代碼)。
在Linux上的問題http://www.linuxquestions.org/questions/linux-software-2/hardware-acceleration-using-opengl-and-x11-876634/有人詳細介紹了Mesa3D/OpenGL是如何工作的,但是我很難看到的是如何在編譯的可執行文件中使用每個發行版的Mesa3D版本(甚至不知道它是否是可能)。
從我能告訴我需要動態鏈接在每個用戶機器上的應用程序的一部分,可能通過使用安裝程序?如果是這種情況,我們可以在運行時編譯程序並鏈接到Mesa3D/OpenGL,就像OpenGL的dll可以在Windows上執行的一樣嗎?
您可以使用與'.dll'相似的共享對象('.so')。推薦的方法是預編譯用戶可以輕鬆安裝的「包」(即'.deb','.rpm')。這些軟件包可以聲明對其他軟件包的依賴關係,即特定版本的庫,然後將自動安裝。應該有大量的教程在那裏打包。 – amon 2012-07-17 20:06:03
是的,你只需要鏈接到'libGL.so.1' – 2012-07-17 20:07:39
保存你自己的麻煩,並使用[GLEW](http://glew.sourceforge.net/)。 – 2012-07-18 03:40:23