我试图将我的旧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