0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
|
||||||
1 | ||||||
Параметры компилятора при работе с openGL21.02.2018, 21:47. Показов 1504. Ответов 10
Метки нет (Все метки)
Приветствую. Раньше работал на студии в винде, но с недавних пор перешёл на линукс. В общем, как работать с компилятором и какие файлы прописывать в параметры при компиляции программы я понимаю. Но вот с граф. библиотекой возникли вопросы. Дело в том, что нужные библиотеки подключаются инклудами в самом начале. Вопрос: зачем в параметры компилятора добавлять
0
|
21.02.2018, 21:47 | |
Ответы с готовыми решениями:
10
Ошибка компилятора при работе с fstream Ошибка компилятора Cs1061 при работе с Excel Ошибка при работе с OpenGL Проблемы при работе с openGl |
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
|
21.02.2018, 23:41 | 2 |
Инклудами подключаются хедеры, в которых описано, какие именно функции существуют и какие им передаются аргументы. А сам код этих функций находится в библиотеках, которые нужно линковать. Ключ -l как раз указывает, какую библиотеку нужно прилинковать к вашему проекту.
0
|
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
|
|
22.02.2018, 00:04 [ТС] | 3 |
0
|
342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
||||||
22.02.2018, 18:34 | 4 | |||||
Дайте команду
0
|
Почетный модератор
11525 / 4320 / 448
Регистрация: 12.06.2008
Сообщений: 12,412
|
||||||
23.02.2018, 12:34 | 5 | |||||
Дополнительные пути можно указывать через ключ -L
Например,
0
|
342 / 197 / 52
Регистрация: 18.10.2017
Сообщений: 1,938
|
|
23.02.2018, 16:44 | 6 |
Humanoid, Я недавно пытался так сделать, но потребовалось ещё установить локальную LD_LIBRARY_PATH.
Я так и не добился того, чтобы ld читал локальный ld.so.cache.
0
|
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
|
|
12.03.2018, 11:16 [ТС] | 7 |
Нет там таких библиотек, есть только: libglut.so.3 и libglut.so
lglut, lGL, lGLU я нигде не нашёл... Откуда линковщик вообще берёт библиотеки? Добавлено через 11 часов 7 минут И всё-таки..?
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
12.03.2018, 13:05 | 8 |
libglut.so.3 - собственно исполняемый файл библиотеки glut (аналог dll-файла в винде, только тут важно не только расширение-суффикс, но и префикс). А "-lglut" - это команда для линковщика. Пара символов "-l" означает "подключить библиотеку", остальное - собственно название библиотеки.
0
|
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
|
|
12.03.2018, 16:02 [ТС] | 9 |
Т.е. когда я указываю линковщику подключить к проекту библиотеки glut, GL, GLU он вызывает libglut.so?
Я почему так рьяно ищу эти файлы: не люблю когда не понимаю. В винде оно как-то проще было, можно пути к библиотекам указать в самой IDE и не париться, или просто кидать эти файлы в папку с проектом. А в линуксе... компилятор и линковщик откуда-то знают где и какие файлы брать, а я нет. Непорядок...
0
|
зомбяк
1584 / 1218 / 345
Регистрация: 14.05.2017
Сообщений: 3,939
|
|
12.03.2018, 16:31 | 10 |
то он подключает функции, скомпилированные в libglut.so . Вызов происходит при запуске приложения, т.к. это динамическая библиотека.
Посмотри содержимое переменной окружения LD_LIBRARY_PATH. По всем путям, которые там указаны, линковщик будет искать эти библиотеки. Если их там нет, то ничего он не найдёт. Чтобы отдельно указать линковщику, где ещё ему разрешается искать библиотеки для линковки, используется команда "-L" . То есть как в примере выше -L/home/user/mydir означает, что нужно поискать требуемые библиотеки и в директории /home/user/mydir Добавлено через 3 минуты + https://losst.ru/biblioteki-ub... 1074_Linux
1
|
3881 / 2479 / 418
Регистрация: 09.09.2017
Сообщений: 10,883
|
|
14.03.2018, 01:44 | 11 |
Сообщение было отмечено Tankist 90 как решение
Решение
Особенность линкера в том что по флагу -lX он ищет библиотеки libX.a и libX.so Возможно, придется доустановить пакеты libgl-mesa-dev или что-то в этом роде
1
|
14.03.2018, 01:44 | |
14.03.2018, 01:44 | |
Помогаю со студенческими работами здесь
11
При работе с OpenGl ошибка Ошибки компиляции при работе с OpenGL Неразрешенный символ при работе с OpenGL Какие параметры нужно передать в функцию opengl при ее вызове, что бы код заработал? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |