【发布时间】:2013-08-24 14:33:02
【问题描述】:
我正在尝试将我的旧 Qt/OpenGL 游戏从 Linux 移植到 Windows。
我正在使用 Qt Creator。
它立即编译良好,但在链接阶段出现了很多错误,例如undefined reference to 'glUniform4fv@12'。
我尝试链接更多库-lopengl32 -lglaux -lGLU32 -lglut -lglew32,但结果相同。
Qt 默认也使用-lQt5OpenGLd。
我将 QGLWIdget 包括在内:
#define GL_GLEXT_PROTOTYPES
#include <QGLWidget>
我也尝试过使用 GLEW,但它与 Qt(或 QOpenGL?)冲突。
我怎样才能摆脱那些未定义的引用? 还有其他我必须链接到的库吗?
提前致谢。
汤姆西
【问题讨论】:
-
Windows 只是不会在其 opengl32.dll 中导出任何超出 GL1.1 的内容。你所做的
#define GL_GLEXT_PROTOTYPES是一个 hack,它甚至不能保证在 Linux 上工作,但它永远不会在 Windows 上工作。您需要在运行时手动或通过一些帮助程序库(如 glew)查询函数指针。但是,我对 Qt 及其 GL 小部件的了解还不够,无法为这个问题提供真正的答案。
标签: c++ qt opengl linker qglwidget