Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/opengl/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ssh/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ g++;链接器:/usr/lib/libGL.so.1:无法读取符号:操作无效_C++_Opengl_Linker_Glut - Fatal编程技术网

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

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

我正试图在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 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) *~