Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349

Параметры компилятора при работе с openGL

21.02.2018, 21:47. Показов 1787. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую. Раньше работал на студии в винде, но с недавних пор перешёл на линукс. В общем, как работать с компилятором и какие файлы прописывать в параметры при компиляции программы я понимаю. Но вот с граф. библиотекой возникли вопросы. Дело в том, что нужные библиотеки подключаются инклудами в самом начале. Вопрос: зачем в параметры компилятора добавлять
Bash
1
-lglut -lGL -lGLU
И почему без этого программа не компилится?
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
21.02.2018, 21:47
Ответы с готовыми решениями:

Ошибка компилятора при работе с fstream
Опыта с ним мало, работал всё время c freopen. Но тут нельзя им. Короче простейшая прога: есть база данных рабочих, вводят с консоли...

Ошибка компилятора Cs1061 при работе с Excel
Пытаюсь проверить содержимое каждой ячейки столбца на совпадение с переменной do // ищем источник { ...

Ошибка при работе с OpenGL
void openGL :: paintGL() { glClear(GL_COLOR_BUFFER_BIT); } выдает ошибку opengl.obj:-1: ошибка: LNK2019: ссылка на...

10
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
21.02.2018, 23:41
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Дело в том, что нужные библиотеки подключаются инклудами в самом начале.
Инклудами подключаются хедеры, в которых описано, какие именно функции существуют и какие им передаются аргументы. А сам код этих функций находится в библиотеках, которые нужно линковать. Ключ -l как раз указывает, какую библиотеку нужно прилинковать к вашему проекту.
0
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
22.02.2018, 00:04  [ТС]
Цитата Сообщение от Humanoid Посмотреть сообщение
какую библиотеку нужно прилинковать
А по какому пути находятся эти библиотеки?
0
 Аватар для peter_irich
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,364
22.02.2018, 18:34
Дайте команду
Bash
1
/sbin/ldconfig -p | grep libglut
и увидите.
0
Почетный модератор
 Аватар для Humanoid
11557 / 4352 / 452
Регистрация: 12.06.2008
Сообщений: 12,454
23.02.2018, 12:34
Дополнительные пути можно указывать через ключ -L
Например,
Bash
1
gcc main.o somefiles.o -L/home/user/mydir -lmylib -o myprog
При этом линковщик будет искать библиотеку libmylib ещё и в папке /home/user/mydir
0
 Аватар для peter_irich
367 / 223 / 53
Регистрация: 18.10.2017
Сообщений: 2,364
23.02.2018, 16:44
Humanoid, Я недавно пытался так сделать, но потребовалось ещё установить локальную LD_LIBRARY_PATH.
Я так и не добился того, чтобы ld читал локальный ld.so.cache.
0
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
12.03.2018, 11:16  [ТС]
Цитата Сообщение от peter_irich Посмотреть сообщение
Дайте команду
Нет там таких библиотек, есть только: libglut.so.3 и libglut.so
lglut, lGL, lGLU я нигде не нашёл...

Откуда линковщик вообще берёт библиотеки?

Добавлено через 11 часов 7 минут
И всё-таки..?
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
12.03.2018, 13:05
Цитата Сообщение от Tankist 90 Посмотреть сообщение
Нет там таких библиотек, есть только: libglut.so.3 и libglut.so
lglut, lGL, lGLU я нигде не нашёл...
libglut.so.3 - собственно исполняемый файл библиотеки glut (аналог dll-файла в винде, только тут важно не только расширение-суффикс, но и префикс). А "-lglut" - это команда для линковщика. Пара символов "-l" означает "подключить библиотеку", остальное - собственно название библиотеки.
0
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349
12.03.2018, 16:02  [ТС]
Цитата Сообщение от TRam_ Посмотреть сообщение
libglut.so.3 - собственно исполняемый файл библиотеки glut
Т.е. когда я указываю линковщику подключить к проекту библиотеки glut, GL, GLU он вызывает libglut.so?

Я почему так рьяно ищу эти файлы: не люблю когда не понимаю. В винде оно как-то проще было, можно пути к библиотекам указать в самой IDE и не париться, или просто кидать эти файлы в папку с проектом. А в линуксе... компилятор и линковщик откуда-то знают где и какие файлы брать, а я нет. Непорядок...
0
зомбяк
 Аватар для TRam_
1585 / 1219 / 345
Регистрация: 14.05.2017
Сообщений: 3,940
12.03.2018, 16:31
Цитата Сообщение от Tankist 90 Посмотреть сообщение
он вызывает
то он подключает функции, скомпилированные в libglut.so . Вызов происходит при запуске приложения, т.к. это динамическая библиотека.
Цитата Сообщение от Tankist 90 Посмотреть сообщение
откуда-то знают где и какие файлы брать, а я нет
Посмотри содержимое переменной окружения LD_LIBRARY_PATH. По всем путям, которые там указаны, линковщик будет искать эти библиотеки. Если их там нет, то ничего он не найдёт. Чтобы отдельно указать линковщику, где ещё ему разрешается искать библиотеки для линковки, используется команда "-L" . То есть как в примере выше -L/home/user/mydir означает, что нужно поискать требуемые библиотеки и в директории /home/user/mydir

Добавлено через 3 минуты
+ https://losst.ru/biblioteki-ub... 1074_Linux
1
 Аватар для COKPOWEHEU
4083 / 2681 / 432
Регистрация: 09.09.2017
Сообщений: 11,921
14.03.2018, 01:44
Лучший ответ Сообщение было отмечено Tankist 90 как решение

Решение

Цитата Сообщение от Tankist 90 Посмотреть сообщение
Нет там таких библиотек, есть только: libglut.so.3 и libglut.so
Особенность линкера в том что по флагу -lX он ищет библиотеки libX.a и libX.so Возможно, придется доустановить пакеты libgl-mesa-dev или что-то в этом роде
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.03.2018, 01:44
Помогаю со студенческими работами здесь

Проблемы при работе с openGl
Здравствуйте. я создал проект, сделал все как было написано у вас на форуме(https://www.cyberforum.ru/opengl/thread242879.html), но у меня...

При работе с OpenGl ошибка
Ошибка 13 error LNK2019: ссылка на неразрешенный внешний символ __imp__glClearColor@16 в функции "public: void __thiscall...

Ошибки компиляции при работе с OpenGL
Какую библиотеку нужно подключить и что нужно сделать, чтобы заработало: 1>------ Построение начато: проект: 1, Конфигурация: Debug...

Неразрешенный символ при работе с OpenGL
Только начал изучать oprngl, но уже неделю борюсь проблемой - в любом примере программы, код которого нашел в инете, при компиляции выдаёт...

Какие параметры нужно передать в функцию opengl при ее вызове, что бы код заработал?
Добрый день. Имеется код: #include <GL/glut.h> #include <iostream> int opengl(int, char **argv); void draw(void); void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! в-строка - входное арифметическое выражение в инфиксной(обычной). . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru