#c #linux #gcc #linker #glfw
#c #linux #gcc #компоновщик #glfw
Вопрос:
это дерьмо не работает. почему?
gcc -c -Wall src/*.c -g -m64 amp;amp; gcc -Iinclude *.o -o bin/debug/main -Lusr/local/lib -l libglfw amp;amp; ./bin/debug/main
я получаю эту ошибку при попытке создать пример окна glfw
/usr/bin/ld: cannot find -l libglfw
collect2: error: ld returned 1 exit status
Как мне импортировать / связать glfw и что происходит не так? Я пробовал динамически связываться с usr/lib/x86_64-linux-gnu/libglfw.so
, но это не помогло. Я довольно новичок в gcc и Linux, поэтому я мог просто быть глупым.
РЕДАКТИРОВАТЬ: в комментариях указано на несколько ошибок, которые я допустил, так что вот новая команда, которая тоже по какой-то причине неверна:
gcc -c -Wall src/*.c -g -m64 amp;amp; gcc -Iinclude *.o -o bin/debug/main -L/usr/local/lib -lglfw amp;amp; ./bin/debug/main
новая ошибка:
/usr/bin/ld: main.o: in function `main':
/home/basti/dev/OpenGL/src/main.c:26: undefined reference to `glClear'
collect2: error: ld returned 1 exit status
Комментарии:
1. Вы, вероятно, хотите
-L/usr/local
…, с косой чертой послеL
, если вы на самом деле не имеете в виду каталог в вашем текущем каталоге.2. … и
-l libglfw
, вероятно , так и должно быть-lglfw
.
Ответ №1:
Я понял это. Благодаря комментариям мне удалось исправить ссылки, и я не понимал, что мне нужно импортировать другие материалы opengl.
В случае, если кто-то ищет ответ на ту же проблему, вот моя команда debug build для sublime text 3: gcc -c -Wall src/*.c -g -m64 amp;amp; gcc -Iinclude *.o -o bin/debug/main -lglfw -lGLU -lGL amp;amp; ./bin/debug/main