未定义对 `gluOrtho2D' 的引用。

3
4个回答

4

您需要将OpenGL和GLU库放在您的对象中,'#include'指令不是一个库,它只是对库能为您做什么的参考。库在Linux上有.so扩展名,在MacOS上有.dylib扩展名,在Windows上有.dll / .lib扩展名,您需要告诉我们您正在使用什么编译器(MinGW,VisualStudio,QtCreator)以及与哪些库链接。对于OpenGL,在Linux上是-lGL,在Windows上是-lOpenGL32。


非常感谢您的回复。我正在Linux下使用QtCreator进行编译,使用免费的glut。我认为我没有在添加时使用“-lGL”选项,因为在make中添加它并没有帮助我。但是我发现使用glOrtho完全可以正常工作。 - Tharanga

3
当你遇到“未定义的引用”错误时,你需要检查是否已经链接了你的库!
使用“-l”标志进行编译,或者如果你使用的是Eclipse,可以前往:项目->属性->C++构建->设置->GCC C++链接器->库并添加你的库!

2

包括所有这些库: 示例:这里的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


0
如果您正在使用Windows,请按照以下两个步骤操作:
  1. 在类的.h文件中添加#include <QtOpenGL>
  2. 在.pro文件中添加QT += opengl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接