我試圖編譯鏈接對OpenGL的代碼。它最初是爲Linux開發的,所以對於Windows(7),我正在與MinGW進行編譯。使用較新的OpenGL與MinGW
MinGW包含圍繞Windows庫(opengl32.dll
和glu32.dll
)的OpenGL頭文件和庫,但代碼包含對較新的OpenGL功能的調用,並且在編譯時失敗。用最新的Mesa3d替代MinGW的頭文件(一箇舊版本的Mesa3d頭文件,支持OpenGL 1.1)取得了一些成功。它會編譯,但鏈接失敗,因爲這些庫仍然缺少這些符號(直接將編譯器指向Windows OpenGL庫沒有任何區別)。我已經確認圖形硬件(Nvidia 560M)支持最新的OpenGL標準(實際上,它可以在同一臺機器上的Linux上運行)。
我試過安裝Nvidia的SDK,但它們只包含最新版本的Direct3d(不是一個選項),並且不再提供可供下載的舊版本(其中包含OpenGL支持)。
我是否正確地做了這樣的事情,確實需要Nvidia的SDK,或者還有其他事情我應該做,以便與正確的庫鏈接?
編輯:具體地缺少功能被鏈接到是glBufferData
,glMapBuffer
,glUnmapBuffer
,glBindBuffer
,glGenBuffer
,和glDeleteBuffer
。
我試圖儘可能避免修改原始代碼,但是從我正在閱讀的內容中可以清楚地看到,我對OpenGL有一個核心的誤解。儘管有這個名稱,實際上,它是否包含一系列包含的頭文件和鏈接的庫? –
@Mike:這不是*只是*。 –
當然不只是這樣,這就是我在練習中要求的原因。 –