我正在使用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
答案 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