未定义引用符号'gluLookAt'

时间:2012-01-17 09:31:02

标签: opengl gcc fedora

我正在使用Fedora 16.我已经安装了freeglut和freeglut-devel软件包。我试图朗读一个简单的opengl程序,但我收到以下错误

gcc cube.c -o cube -lglut
/usr/bin/ld: /tmp/ccSFol4w.o: undefined reference to symbol 'gluLookAt'
/usr/bin/ld: note: 'gluLookAt' is defined in DSO /usr/lib/libGLU.so.1 so try adding it to the linker command line
/usr/lib/libGLU.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

5 个答案:

答案 0 :(得分:6)

编译:{{1​​}}

运行:g++ sampleCode.cpp -lglut -lGL -lGLU

是你的答案。

答案 1 :(得分:3)

你必须链接一些gl库。

g++ cube.c -o cube -I /usr/lib/libglut.so.3 /usr/lib/libGL.so.1 /usr/lib/libGLU.so.1 -lGL

答案 2 :(得分:2)

我认为你应该参考关于编译器,链接器和库的一些介绍文本,即在构建程序时这些部分是如何组合在一起的。从本质上讲,链接器告诉你,有一些松散的结束,并且由于它们无法完成程序的链接。添加库时,-l开关带有库名(在您的情况下为GLU),而不是通过为库文件提供完整路径。

答案 3 :(得分:1)

做它说的话

gcc cube.c -o cube -lglut -lGLU

答案 4 :(得分:1)

当我写道:

时,我在Ubuntu 12.04 LTS中遇到了完全相同的问题
g++ square.cpp -lglut

然后我在网上发现有些人还添加了-lGL和lGLU,所以我做了它并且现在编译:

g++ square.cpp -lglut -lGL -GLU