2012-08-28 63 views
2

我試圖編譯鏈接對OpenGL的代碼。它最初是爲Linux開發的,所以對於Windows(7),我正在與MinGW進行編譯。使用較新的OpenGL與MinGW

MinGW包含圍繞Windows庫(opengl32.dllglu32.dll)的OpenGL頭文件和庫,但代碼包含對較新的OpenGL功能的調用,並且在編譯時失敗。用最新的Mesa3d替代MinGW的頭文件(一箇舊版本的Mesa3d頭文件,支持OpenGL 1.1)取得了一些成功。它會編譯,但鏈接失敗,因爲這些庫仍然缺少這些符號(直接將編譯器指向Windows OpenGL庫沒有任何區別)。我已經確認圖形硬件(Nvidia 560M)支持最新的OpenGL標準(實際上,它可以在同一臺機器上的Linux上運行)。

我試過安裝Nvidia的SDK,但它們只包含最新版本的Direct3d(不是一個選項),並且不再提供可供下載的舊版本(其中包含OpenGL支持)。

我是否正確地做了這樣的事情,確實需要Nvidia的SDK,或者還有其他事情我應該做,以便與正確的庫鏈接?

編輯:具體地缺少功能被鏈接到是glBufferDataglMapBufferglUnmapBufferglBindBufferglGenBuffer,和glDeleteBuffer

回答

0

你需要的是一個OpenGL加載庫,你應該在Linux和Windows上使用它。這將確保您獲得您感興趣的平臺所需的全部功能。

There are several you can choose from,每個都有自己的長處和短處。

+0

我試圖儘可能避免修改原始代碼,但是從我正在閱讀的內容中可以清楚地看到,我對OpenGL有一個核心的誤解。儘管有這個名稱,實際上,它是否包含一系列包含的頭文件和鏈接的庫? –

+0

@Mike:這不是*只是*。 –

+0

當然不只是這樣,這就是我在練習中要求的原因。 –