OpenGL и Linux: Установка и настройка Code::Blocks

  Дмитрий Бушуев  | 

  Обновл. 10 Апр 2020  | 

 980

 ǀ   3 

В этом уроке мы рассмотрим установку и настройку 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


Скачиваем GLFW с оф. сайта:

Распаковываем скачанный архив в папку /home/diego/OpenGL_Project/, я пользуюсь архиватором Xarchiver:

Указываем необходимую нам папку:

Видим получившуюся распакованную папку glfw-3.3.2:


Установка CMake в Linux

Теперь необходимо поставить систему сборки проектов CMake. Для этого в окне терминала выполните следующую команду:

sudo aptitude install cmake-gui

Запускаем CMake:

Указываем папку с исходниками 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 должен появиться скомпилированный файл библиотеки 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":

Затем нажимаем на кнопку "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:


Запускаем наш проект в Code::Blocks

Теперь откройте файл main.cpp и скопируйте в него следующий код из урока №3:

Всё готово к тому, чтобы скомпилировать наш проект. Но мы же с вами используем Linux, и это было бы слишком просто. Если вы попробуете собрать текущий проект, то снова получите сообщения об ошибках. А чтобы избежать подобной ситуации, необходимо доустановить пакет g++:

sudo aptitude install g++

Теперь можно нажать на шестерёнку и скомпилировать проект. Можно увидеть, как в папке bin/Debug/ создался исполняемый файл с названием CodeBlocks:

Всё готово к запуску. Нажав на стрелочку, видим результат наших трудов — окно, залитое серо-зелено-голубым цветом. Именно так, как и было описано в предыдущем уроке:

На этом всё! До следующего урока!


Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (5 оценок, среднее: 4,60 из 5)
Загрузка...

Комментариев: 3

  1. Аватар Николай:

    Здравствуйте. А зачем ставить GLAD прямо в проект, почему не установить всё как динамическую библиотеку в /usr/local/lib и usr/local/include, чтобы можно было в любом проекте спокойно линковаться?

  2. Аватар Иван Сотников:

    Работает!
    Дмитрий Бушуев, огромное спасибо! 🙂

    1. Дмитрий Бушуев Дмитрий Бушуев:

      Пожалуйста 🙂

Добавить комментарий

Ваш E-mail не будет опубликован. Обязательные поля помечены *