Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
 Аватар для Tankist 90
0 / 0 / 2
Регистрация: 27.04.2015
Сообщений: 349

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

21.02.2018, 21:47. Показов 1784. Ответов 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,362
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,362
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,911
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
Ответ Создать тему
Новые блоги и статьи
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, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru