http://programanddesign.com/cpp/qt-opengl-code-example/未定義參考`gluOrtho2D」
我例如上述嘗試,其中包括
#include <GL/glu.h>
#include <GL/glut.h>
爲好。但我得到一個gluOrtho2D未定義的錯誤。我在這裏做錯了什麼?
http://programanddesign.com/cpp/qt-opengl-code-example/未定義參考`gluOrtho2D」
我例如上述嘗試,其中包括
#include <GL/glu.h>
#include <GL/glut.h>
爲好。但我得到一個gluOrtho2D未定義的錯誤。我在這裏做錯了什麼?
當你有一個「未定義的參考」,你必須檢查你是否已經鏈接你的庫!
使用「-l」標誌編譯,或者如果使用-for instance -eclipse轉到:project-> propreties-> C++ Build-> Settings-> GCC C++ Linker-> Libraries並添加您的庫!
你需要將OpenGL和GLU庫放入你的對象中,'#include'指令不是一個庫,它只是庫可以爲你做的一個參考。庫在Linux上具有.so擴展名,在MacOS上爲.dylib,在Windows上爲.dll/.lib,你需要告訴我們你正在使用什麼來編譯(MinGW,VisualStudip,QtCreator),並告訴我們你鏈接了哪些庫用。對於OpenGL,在linux中是-lGL,在windows中是-lOpenGL32。
如果您使用的是Windows,請遵循以下兩個步驟。
#include <QtOpenGL>
添加到您的.h文件中。QT += opengl
。包含所有這些庫: 實施例:下面是new2.cpp主C++文件和Output.out是受編譯new2.cpp文件以g ++編譯器創建的可執行文件。我還用-I包含了這些庫,並將它們與-l鏈接起來。最後我通過執行完成了執行結果./Output.out
mandeep @ mandeep-HP:〜/ Desktop $ g ++ new2.cpp -o Output.out -I/usr/include/GL -I/usr/lib -lGL -lglut -lGLU mandeep @ mandeep-HP:〜/ Desktop $ ./Output.out
非常感謝您的回覆。我正在用Linux編譯QtCreator。使用免費的過剩。我不認爲我在使用-lGL選項時將其添加到make中並沒有幫助我。但我發現它在glOrtho中運行得很好 – Tharanga 2012-02-17 14:09:27