我試圖將我的舊Qt/OpenGL遊戲從Linux移植到Windows。 我正在使用Qt Creator。 它馬上編好了,但在鏈接階段給了很多錯誤,如undefined reference to '[email protected]'
。使用QGLWidget時對gl函數的未定義引用
我試圖鏈接更多的庫-lopengl32 -lglaux -lGLU32 -lglut -lglew32
,但它給出了相同的結果。
Qt默認也使用-lQt5OpenGLd
。
我包括QGLWidget來繪圖用:
#define GL_GLEXT_PROTOTYPES
#include <QGLWidget>
我使用GLEW也試過,但它使用Qt confilcts(或QOpenGL?)。
我該如何擺脫那些未定義的引用? 是否有其他圖書館,我必須鏈接到?
在此先感謝。
Tomxey
Windows在其opengl32.dll中不會導出除GL1.1以外的任何內容。你所做的#define GL_GLEXT_PROTOTYPES是一種黑客,它甚至不能保證在Linux上工作,但它永遠不會在windows上工作。您需要在運行時查詢函數指針,可以手動或通過像glew這樣的輔助庫來查詢。但是,我不太瞭解Qt,而且它是GL小部件,可以爲這個問題提供真正的答案。 – derhass