2017-06-21 53 views
0
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連接到我的主窗口,這意味着我可以使用所有的功能工作正常來自opengl庫。但是現在我需要爲我的openglwidget.h外創建的另一個h文件(在這裏命名爲x.h)使用一個函數,所以我只是簡單地介紹了<GL/glut.h>。在我編譯整個項目之前,似乎QT可以找到glut.h文件,換言之,關鍵詞'GLfloat'的紫色表示glut.h在我的x.h文件中成功調用。然而,當我編譯項目,會出現一個鏈接問題:我使用opengl32在QT,但是當我包括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的窗口部件類時,我應該如何使用openGL庫?謝謝你們,無論誰給出任何建議!

+2

您已經在使用Qt,爲什麼要將它與另一個應用程序框架(如GLUT)結合? – genpfault

+0

因爲我想使用glut.h中聲明的GLfloat,我不能在我自己定義的x.h中使用它。要清楚的是,GLfloat可以在openglWidget中使用,而不是在x.h中使用。 –

+0

你使用哪種GLUT實現,它在'glut.h'中定義'GLfloat',而不是在'gl.h'中使用聲明? – genpfault

回答

0

好的球員,這個問題已經通過只是增加#include <QOpenGLWidget>我x.h :)解決

看來,我們不需要像GLUT QT間期項目的其他應用程序框架。

相關問題