компоновщик g ++: /usr/lib/libGL.so.1: не удалось прочитать символы: недопустимая операция - PullRequest
10 голосов
/ 13 августа 2010

Я пытаюсь создать очень простое OpenGL-приложение под Ubuntu 10.04 (у меня 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 ]

16 голосов
/ 13 августа 2010

Вам нужно включить библиотеку opengl в командной строке, а также библиотеку glut /.Попробуйте добавить -lGL в конец командной строки

g++ -L/usr/lib simple.cpp -lglut -lGL
1 голос
/ 29 марта 2014

компилируйте с

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

или попробуйте следующий файл make из OpenGL primer , он очень компактенЭтот помог мне запустить мой 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) *~
...