C++ g++;链接器:/usr/lib/libGL.so.1:无法读取符号:操作无效
我正试图在Ubuntu10.04下构建一个非常简单的OpenGL应用程序(我有一个32位的系统) 当我试图编译文件时,会收到错误消息:C++ g++;链接器:/usr/lib/libGL.so.1:无法读取符号:操作无效,c++,opengl,linker,glut,C++,Opengl,Linker,Glut,我正试图在Ubuntu10.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 i
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
有人知道我做错了什么吗?您需要在命令行中包括opengl库以及glut库/。 尝试将-lGL添加到命令行的末尾
g++ -L/usr/lib simple.cpp -lglut -lGL
编译
g++ main.cpp -o main.bin -lGL -lGLU -lglut
或者试试下面的make文件,因为它非常紧凑。
这个帮助我运行Hello world OpenGL。
多亏了
非常感谢。它部分地解决了我的问题,所以我可以做其余的事情(还必须添加
-lGLU
)。任何人都可以解释它为什么打印/usr/lib/libGL。所以。1:无法读取符号:无效操作
?这看起来像是试图读取丢失的库,但失败了。与您的问题无关,但我看到您正在使用glEnd(),它自GL3以来就被弃用了。如果您开始使用OpenGL编程,我建议您开始使用带有“核心概要文件”的GL3+。旧的OpenGL不仅速度慢,而且非常有限。
CC = g++
SRC = main.cpp imageloader.cpp
LIBS = -lGL -lGLU -lglut
EXEC = cube.bin
all:
$(CC) $(SRC) -o $(EXEC) $(LIBS)
clean:
rm -rf $(EXEC) *~