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

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

21.02.2018, 21:47. Показов 1831. Ответов 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
11560 / 4354 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
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
369 / 225 / 53
Регистрация: 18.10.2017
Сообщений: 2,394
22.02.2018, 18:34
Дайте команду
Bash
1
/sbin/ldconfig -p | grep libglut
и увидите.
0
Почетный модератор
 Аватар для Humanoid
11560 / 4354 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
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
369 / 225 / 53
Регистрация: 18.10.2017
Сообщений: 2,394
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,932
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
Ответ Создать тему
Новые блоги и статьи
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru