- OpenGL программирование/Установка/Linux
- Содержание
- Установка OpenGL на Linux [ править ]
- Библиотеки [ править ]
- Драйверы [ править ]
- Фирменные варианты [ править ]
- Свободные/Open-Source варианты. [ править ]
- Проверьте ваши сведения о OpenGL [ править ]
- IDEs [ править ]
- Installing your own OpenGL headers [ править ]
- How to Install OpenGL on Ubuntu Linux
- OpenGL и Linux: Установка и настройка Code::Blocks
- Подготовительные шаги
- Установка GLFW в Linux
- Установка CMake в Linux
- Установка Code::Blocks в Linux
- Установка GLAD в Linux
- Создание проекта в Code::Blocks
OpenGL программирование/Установка/Linux
Содержание
Установка OpenGL на Linux [ править ]
Большинство дистрибутивов Linux опираются на Mesa3D проект что бы обеспечить реализацию OpenGL. Они регулярно поставляют OpenGL библиотеки, а так же OpenGL ES 1.x и 2.0.
Точные имена пакетов необходимых для установки сильно зависят от дистрибутива. Ссылаясь на пакеты вашего дистрибутива, вы можете спасти себя от траты времени и головной боли в установке. Используйте ваш любимый менеджер пакетов и поиск по названию пакета. Вам, возможно, потребуется установить пакеты, с DEV суффиксом, это пакеты разработки (обычно файлы заголовков). Также смотрите в пакетах с lib-префиксом, которые относятся к библиотекам.
Установите GCC C/C++ компиляторы и связанные с ними инструменты, такие как make.
В общем, установите следущее:
Библиотеки [ править ]
В этом Викиучебнике, мы будем использовать GLEW, FreeGLUT и GLM, убедитесь, что вы установите библиотеки разработчика (примечание переводчика dev библиотеки):
Если GLM не доступен в вашем репозитории, у вас есть возможность установить его вручную. Убедитесь, что заголовки размещены в каталоге /usr/include/glm . Так как это только заголовки библиотеки, вам не нужно компилировать .so библиотеки — просто скопируйте код.
Драйверы [ править ]
OpenGL является основным API 3D-графики в GNU/Linux-based системах. Если ваше устройство поддерживает 3D ускорение на GNU/Linux, оно, вероятно, включает в себя OpenGL.
OpenGL включается в драйверах, так что вы должны убедиться, что драйверы были установлены корректно, если вы хотите запускать программы с использованием OpenGL. Драйверы с открытым исходным кодом, на самом деле, используют реализацию Mesa в OpenGL. Фирменные драйверы поставляют собственную библиотеку OpenGL.
Фирменные варианты [ править ]
Компания Nvidia обеспечивает в целом хороший, но не свободный драйвер nvidia. fglrx драйвер для многих современных устройств AMD; он также имеет закрытый исходный код и доступен на сайте AMD.
Свободные/Open-Source варианты. [ править ]
Если ваш процессор Intel с встроенной графикой, то необходимые драйверы с открытым исходным кодом поставляются в качестве стандартной части ядра Linux.
Если у вас установлен один из новейших чипов, вам возможно придётся использовать посредственный fglrx драйвер. Однако AMD выпустила спецификации для своих чипов, ‘Radeon’ с открытым исходным кодом сделал свой путь, для того чтобы стать полнофункциональным 2D и 3D драйвером.
По состоянию на июнь 2013 года, большинство чипов AMD хорошо работают с исходным драйвером «Radeon». 3D производительность с драйвером AMD Catalyst на современных картах еще лучше, но это может измениться в будущем. Можете проверить таблицу характеристик.
Nouveau драйвер с открытым исходным кодом поддерживает чипсеты NVIDIA, но в момент написания не так полон, как драйвера с закрытым исходным кодом от NVIDIA, поддержка 3D может быть не удовлетворительна.
Драйвер OpenGL на Linux-системах состоит из двух файлов:
А так же многие OpenGL приложения требуют libGLU.so; Операции GLU не могут быть аппаратно ускоренны, поэтому реализация Mesa является отличным вариантом.
Проверьте ваши сведения о OpenGL [ править ]
Введите это в терминале, чтобы получить больше информации о вашем OpenGL драйвере, включая поддерживаемые расширения:
IDEs [ править ]
The tutorials will mostly rely on simple Makefile s to build the code, and let you edit the source with your favorite text editor, such as Emacs, vim, gedit, kwrite, etc.
Существует несколько IDE для GNU/Linux, такие как:
Очень просто преспособить Мейкфайлы к этим системам.
Installing your own OpenGL headers [ править ]
In the unlikely event that your distribution does not supply packages for Mesa3D, you can build it from source with the usual
installation procedure; however, be careful of conflicting opengl libraries.
Mesa’s software implementation may override your distribution’s libraries or libraries manually installed, such as the nvidia or fglrx OpenGL binaries. When this happens, search all directories listed with
for libGL.so. The following command should output all the different OpenGL libraries available on your system:
It is usually OK if you have one the mesa library plus the proprietary library. On 64-bits systems, you may also have the lib32 library. Additional copies of libGL.so found in the ld search path (specified in /etc/lf.so.conf by default), if not referring to the same file, usually indicates a conflict. Remove all but the copy you want executed.
The headers will be installed to $PREFIX/include/GL (usually /usr/include/GL when installed from a packaged, or /usr/local/include/GL when installed manually from source).
«Official» OpenGL headers are available from SGI, however, they are hopelessly out of date.
Источник
How to Install OpenGL on Ubuntu Linux
What Is OpenGL?
OpenGL is a Graphics rendering API which is operating system independent, window system independent and has high-quality color images composed of geometric and image primitives.
OpenGL APIs can use following …
- Gl
- OpenGL API implementation (http://www.opengl.org)
- Glu
- OpenGL Utility
- Glut – GLUT (OpenGL Utility Toolkit) – Glut is portable windowing API and it is not officially part of OpenGL.
- OpenGL Utility Toolkit (http://www.opengl.org/resources/libraries/glut/)
- FLTK
- FlashLight ToolKit (http://www.fltk.org/)
- GLEW…
Now lets see How to install OpenGL on out Ubuntu OS.
Now because GLUT (OpenGL Utility Toolkit) depends upon OpenGL and a number of other related libraries, if we install GLUT then OpenGL will be automatically be installed.
Run the following commands to install OpenGL.
Now to test if OpenGl libraries are working fine on our Linux, we will create a C++ program and test it.
So create a following C++ Program.
Now give the command below to compile your code.
Now run your OpenGl program with following command
If a window pops up when you run the program, then OpenGL is working on your Ubuntu OS.
Источник
OpenGL и Linux: Установка и настройка Code::Blocks
Обновл. 7 Сен 2021 |
На этом уроке мы рассмотрим установку и настройку Code::Blocks в Linux для работы с OpenGL, а также запустим проект, рассмотренный на предыдущем уроке.
Подготовительные шаги
Установка будет происходить на чистой системе debian-10.3.0-amd64 XFCE под VMware. Я не буду описывать сам процесс установки ОС, ограничусь лишь скриншотом итоговой конфигурации системы:
Также для данного проекта я в домашней папке своего пользователя создал каталог OpenGL_Project , полный путь к которому выглядит как /home/diego/OpenGL_Project/ , где diego — это имя моего пользователя в системе. У вас оно наверняка будет другим. Учитывайте это!
На всякий случай избегайте кириллицы в путях и именах файлов.
Еще один момент: для установки новых пакетов в Linux я привык пользоваться программой aptitude , а не стандартной apt-get . Поэтому вы можете поступить следующим образом:
Вариант №1: Установить aptitude , для этого в терминале выполните команду sudo apt-get install aptitude .
Вариант №2: Можете пользоваться стандартной программой apt-get . Но учтите, что если по ходу данного туториала встречается установка пакета командой вроде sudo aptitude install НАЗВАНИЕ_ПАКЕТА , то в вашем варианте команда установки пакета должна выглядеть как sudo apt-get install НАЗВАНИЕ_ПАКЕТА .
Установка GLFW в Linux
Распаковываем скачанный архив в папку /home/diego/OpenGL_Project/ , я пользуюсь архиватором Xarchiver:
Указываем необходимую нам папку:
Видим получившуюся распакованную папку glfw-3.3.2 :
Установка CMake в Linux
Теперь необходимо поставить систему сборки проектов CMake. Для этого в окне терминала выполните следующую команду:
sudo aptitude install cmake-gui
Указываем папку с исходниками GLFW и вторую папку, где должен будет появиться результат работы CMake (у себя для этого я создал папку build ), и нажимаем кнопку «Configure» :
В появившемся окне выбираем пункт «CodeBlocks – Unix Makefiles» и нажимаем кнопку «Finish» :
В результате видим… кучу ошибок (добро пожаловать в мир Linux):
Нажимаем «ОК» , снова возвращаемся в терминал и устанавливаем пакет xorg-dev :
sudo aptitude install xorg-dev
Возвращаемся в CMake и выставляем галочки так, как показано ниже:
И снова нажимаем кнопку «Configure» (дважды), а потом кнопку «Generate» . Видим сообщения об успешном конфигурировании и сборке проекта:
В результате, в папке build у нас должен появиться файл проекта GLFW.cbp :
Установка Code::Blocks в Linux
Пришло время установить среду программирования Code::Blocks. Для этого возвращаемся в терминал и вводим следующую команду:
sudo aptitude install codeblocks
После установки иконка файла проекта поменяет свой внешний вид:
Открываем данный файл, в результате чего будет запущен Code::Blocks, и появится окно с выбором компиляторов. В системе должен присутствовать как минимум один компилятор — GNU GCC Compiler . Жмем «ОК» :
Открывается окно проекта, нажимаем на шестеренку и компилируем его:
После этого в папке build/src должен появиться скомпилированный файл библиотеки libglfw3.a :
Установка GLAD в Linux
Заходим на оф. сайт GLAD и указываем следующие настройки, после чего нажимаем кнопку «Generate» :
В результате нам будет предложено скачать архив glad.zip:
Далее, чтобы внести немного порядка и организованности в наш будущий проект, поместите папки include и src , содержащиеся в данном архиве, в папку /home/diego/OpenGL_Project/ .
Затем скопируйте папку /home/diego/OpenGL_Project/glfw-3.3.2/include/GLFW в папку /home/diego/OpenGL_Project/include/ .
Также создайте папку lib в /home/diego/OpenGL_Project/ и скопируйте в нее файл скомпилированной библиотеки libglfw3.a .
В итоге у вас должна получиться примерно следующая картина иерархии папок и файлов:
Создание проекта в Code::Blocks
Запускаем Code::Blocks и создаем новый пустой проект: «File» > «New» > «Project…» , выбираем «Empty Project» и нажимаем кнопку «Go» :
Затем нажимаем кнопку «Next» :
Задаем имя проекту. Я назвал его CodeBlocks и выбрал папку /home/diego/OpenGL_Project/ :
В следующем окне должны быть следующие настройки:
Теперь скопируйте файл glad.c из папки /home/diego/OpenGL_Project/src/ в папку с проектом /home/diego/OpenGL_Project/CodeBlocks/ .
Также создайте файл main.cpp в папке /home/diego/OpenGL_Project/CodeBlocks/ .
Затем эти два файла нужно будет добавить в наш проект. Для этого вернемся обратно в Code::Blocks, нажмем правой кнопкой мыши на название нашего проекта и выберем пункт «Add files…» :
Добавляем в проект файлы glad.c и main.cpp :
Настало время подключить необходимые папки с заголовочными файлами и библиотеки, а также настроить компилятор и линкер. Для этого в Code::Blocks переходим в «Project» > «Build options…» :
Переходим на вкладку «Linker settings» и настраиваем её следующим образом:
Примечание: В правом окошке «Other linker options» необходимо указать следующие параметры:
-lglfw3 -ldl -lX11 -lpthread -lm -lXrandr -lXi
Затем добавим дополнительные пути для поиска заголовочных и библиотечных файлов. Для этого переходим в «Search directories» > «Compiler» :
Затем подобные действия проделываем и для вкладки «Linker» , указывая путь к папке lib :
Источник