对“gluOrtho2D”的未定义引用

时间:2012-02-17 10:13:52

标签: c++ qt opengl

http://programanddesign.com/cpp/qt-opengl-code-example/

我正在尝试以上示例并包括

#include <GL/glu.h>
#include <GL/glut.h>

也是。但我得到一个gluOrtho2D undefined错误。我在这做错了什么?

4 个答案:

答案 0 :(得分:3)

当你有一个&#34;未定义的引用&#34;你必须检查你是否已经链接了你的库!

使用&#34; -l&#34; flag或者,如果你使用-for instance-eclipse转到:project-&gt; propreties-&gt; C ++ Build-&gt; Settings-&gt; GCC C ++ Linker-&gt;库并添加你的库!

答案 1 :(得分:3)

您需要将OpenGL和GLU库放在对象中,'#include'指令不是库,它只是库可以为您做什么的参考。库在Linux上有.so扩展名,在MacOS上有.dylib,在windows上有.dll / .lib,你需要告诉我们你用什么编译,(MinGW,VisualStudip,QtCreator)并告诉我们你链接的库是什么用。对于OpenGL,在linux中是-lGL,在windows中是-lOpenGL32。

答案 2 :(得分:0)

如果您使用的是Windows,请执行以下两个步骤。

  1. #include <QtOpenGL>添加到班级的.h文件中。
  2. 在.pro文件中添加QT += opengl

答案 3 :(得分:0)

包括所有这些库: 示例:此处new2.cpp是主c ++文件,Output.out是通过在g ++编译器中编译new2.cpp文件而创建的可执行文件。我还用-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