我在QT中使用opengl32,但是当我包含glut.h时,会发生链接错误

时间:2017-06-21 15:35:48

标签: qt opengl linker-errors

FORMS    += mainwindow.ui
LIBS += -lopengl32 -lglut32 //(error is here, the second term)


win32:CONFIG(release, debug|release): LIBS += -LC:/ (path to some lib) -l(a good lib that is not regarding to this question)
else:win32:CONFIG(debug, debug|release): LIBS += -LC:/ (path to some lib) -l(a lib)
INCLUDEPATH += C:/(path to some directory)
DEPENDPATH += C:/(path to some directory)

当我使用-lopengl32并将我的openGLWidget连接到我的mainWindow时,它工作正常,这意味着我可以使用opengl库中的所有函数。但是现在我需要在我的openglwidget.h之外创建另一个h文件(在这里命名为x.h)的函数,所以我只是简单地包含<GL/glut.h>。在编译整个项目之前,QT似乎可以找到glut.h文件,换句话说,关键字'GLfloat'的紫色表示在我的x.h中成功调用了glut.h。但是,当我编译项目时,会出现链接问题:

 :-1: error: LNK1181: cannot open input file 'glut32.lib'

我认为我不需要指定我的glut32.lib的详细路径,因为它就在我的visual studio的库路径中。无论我将-lglut32放在qmake文件中,都会发生错误。

另外,不仅仅是对于glut32.lib,我说有另一个y.lib可以在我的visual studio 2015中运行而没有任何错误,但是当我在我的QT项目中使用这个y.lib时仍会出现同样的问题。编译器无法正确找到lib文件。错误与我上面发布的错误相同。

所以我的问题可以简化为:当它不是QT中mainWindow的widget类时,我应该如何使用openGL库?谢谢你们谁提出任何建议!

1 个答案:

答案 0 :(得分:0)

好吧,伙计们,只需将#include <QOpenGLWidget>添加到我的x.h即可解决问题:)

似乎我们不需要其他应用程序框架,如GLUT用于QT项目。