g ++链接器:/usr/lib/libGL.so.1:无法读取符号:无效的操作

时间:2010-08-13 12:40:27

标签: c++ opengl linker glut

我正在尝试在Ubuntu 10.04下构建一个非常简单的OpenGL应用程序(我有一个32位系统)。

当我尝试编译文件时,收到错误消息:

g++ -L/usr/lib simple.cpp -lglut
/usr/bin/ld: /tmp/ccoPczAo.o: undefined reference to symbol 'glEnd'
/usr/bin/ld: note: 'glEnd' is defined in DSO //usr/lib/libGL.so.1 so try adding it to the linker command line
//usr/lib/libGL.so.1: could not read symbols: Invalid operation
collect2: ld returned 1 exit status

有人知道我做错了吗?

2 个答案:

答案 0 :(得分:16)

您需要在命令行以及glut库/中包含opengl库。 尝试将-lGL添加到命令行的末尾

g++ -L/usr/lib simple.cpp -lglut -lGL

答案 1 :(得分:1)

编译
g++ main.cpp -o main.bin -lGL -lGLU -lglut

或从OpenGL primer尝试以下make文件,它非常紧凑。 这个帮助我运行我的Hello world OpenGL。 感谢OpenGL Primer

CC = g++
SRC = main.cpp imageloader.cpp
LIBS = -lGL -lGLU -lglut
EXEC = cube.bin

all:
       $(CC) $(SRC) -o $(EXEC) $(LIBS)

clean:
       rm -rf $(EXEC) *~