На этой неделе я описываю, как настроить среду для разработки графической программы с использованием SFML в C++. Я только начинаю, поэтому это решение не обязательно будет оптимальным. При этом у меня было чертовски много времени, чтобы найти место, где шаг за шагом выполнялась установка Windows! Итак, вот оно!

Инструменты

Простая быстрая мультимедийная библиотека (SFML)

Название Simple Fast Multimedia Library («SFML») говорит само за себя. SFML — это библиотека с открытым исходным кодом, которую можно скомпилировать на разных платформах. Его цель — предоставить удобный интерфейс для различных компонентов вашего ПК. Включенные модули:

  • Система
  • Окно
  • Графика
  • Аудио
  • Сеть

Что каждый из них делает и как их использовать, выходит за рамки этой статьи, но для получения дополнительной информации я рекомендую вам изучить их область обучения.

CMake

CMake используется для управления процессом компиляции программного обеспечения с помощью простых файлов конфигурации, независимых от платформы и компилятора (источник: Сайт CMake). Мы будем использовать CMake, чтобы создать make-файл для сборки нашего приложения. Есть много параметров конфигурации через CMake, которые мне еще предстоит изучить. В этой статье я использовал только то, что потребовалось для создания моего программного обеспечения, связанного с SFML.

Настройка среды

Давайте приступим к настройке нашей среды. Теперь я хотел бы предварить все нижеследующее словами «Извините, но мы ДОЛЖНЫ расширить переменную PATH, чтобы это работало».

Требования (загрузки)

Пожалуйста, перейдите по ссылкам ниже, чтобы загрузить необходимое программное обеспечение.

Настройка SFML

Извлеките zip-файл SFML на корневой диск (обычно «C:/»). Это приведет к «SFML-2.5.1» в вашем корне. Переименуйте эту папку в «SFML». Теперь в корне вашей системы будет каталог «SFML». Содержимое этого каталога должно включать другие каталоги, такие как «bin», «doc» и другие.

Настройка компилятора MinGW

Разархивируйте файл .7z на корневой диск (обычно «C:/»). Это должно привести к созданию каталога «ming64w» на корневом диске, который содержит подкаталоги, такие как «bin», «opt» и другие.

Настройка CMake

Идем дальше и устанавливаем CMake. Обратите особое внимание на возможность включить его в переменную PATH. CMake не будет работать должным образом, если он не включен в эту переменную среды. Чтобы проверить, просто запустите «cmake» в командной строке, чтобы увидеть, работает ли программа.

Настройка переменной среды PATH

Последняя конфигурация, которую необходимо выполнить, прежде чем мы перейдем к созданию нашего проекта, — это переменная среды PATH. Я пробовал много разных решений, чтобы избежать этого шага. Мне не нравится устанавливать что-то глобально на моей машине для проекта, который может быть эфемерным и локальным для одного каталога.

Начните с открытия меню «Пуск» и поиска «env». Это должно показать предлагаемую программу, которая выглядит следующим образом:

Откройте эту программу и выберите «Переменные среды», как показано ниже:

В появившемся окне нам нужно выбрать переменную пути и отредактировать ее:

Нам нужно добавить расположение библиотеки SFML и расположение компилятора MinGW в переменную PATH, чтобы CMake мог найти ее и настроить наш Makefile.

Пример проекта с CMake и SFML (наконец-то!)

Хорошо, со всей конфигурацией мы должны быть в состоянии настроить проект для компиляции и компоновки с библиотекой SFML. Для этого создайте каталог для вашего проекта. Создайте два файла, один с именем «Cmakelists.txt», а другой с именем «test.cpp». Кроме того, создайте каталог с именем «build». Теперь каталог вашего проекта должен выглядеть так:

  • построить (каталог)
  • Cmakelists.txt
  • test.cpp

«Cmakelists.txt» для графики SFML

В файле Cmakelists.txt поместим:

cmake_minimum_required(VERSION 3.12 FATAL_ERROR) 
project(TestProject VERSION 0.1) 

find_package(SFML 2.5 COMPONENTS system window graphics network audio REQUIRED) 

add_executable(TestProject test.cpp) 

target_link_libraries(TestProject sfml-graphics)

Это объявляет имя вашего проекта («TestProject») и его версию («VERSION 0.1»). Затем он сообщает CMake найти пакет SFML (который он найдет, если переменная PATH настроена правильно). Наконец, мы добавляем исполняемый файл для компиляции нашего исходного файла и связываем этот исполняемый файл с «sfml-graphics».

Тестирование связи SFML

Этот файл («test.cpp») будет использоваться для хранения очень простой программы, которая просто создает пустое окно. Пустое окно свидетельствует о том, что наша программа корректно связывается с библиотекой SFML.

#include <SFML/Graphics.hpp> 

int main() { 
  // create the window 
  sf::RenderWindow window(sf::VideoMode(800, 600), "My window"); 
  // run the program as long as the window is open 
  while (window.isOpen()) { 
    // check all the window's events that were triggered since the last iteration of the loop 
    sf::Event event; 
    while (window.pollEvent(event)) { 
      // "close requested" event: we close the window 
      if (event.type == sf::Event::Closed) 
        window.close(); 
    } 
    // clear the window with black color 
    window.clear(sf::Color::Black); 
    // draw everything here... 
    // window.draw(...); 
    // end the current frame 
    window.display(); 
  } 

  return 0; 
}

Время компиляции!

Наконец, пришло время скомпилировать нашу программу. Откройте командную строку в каталоге сборки вашего проекта и введите следующее:

cmake -G "MinGW Makefiles" ..

Если это успешно выполняется, то теперь у вас есть make-файл, подготовленный для компиляции. Чтобы скомпилировать вашу программу, просто введите:

mingw32-make

Теперь запустите программу, набрав:

TestProject.exe

У вас должно получиться очень простое всплывающее окно:

Заключительные замечания

Я знаю, что публикация на этой неделе не привела ни к каким суперкрутым гифкам. Однако, по крайней мере для меня, наличие документированных средств настройки среды разработки очень полезно для будущего использования и проектов. Внимание, спойлер: я планирую использовать точно такую ​​же настройку для проекта на следующей неделе!

Спасибо, что присоединились ко мне в этом посте. Я надеюсь, что это может помочь кому-то запустить графический проект!

Если вы ищете вдохновение о том, для чего это использовать, могу ли я предложить построить симуляцию? Ознакомьтесь с некоторыми из моих попыток в Python с библиотекой Kivy:

Спасибо за чтение! Не стесняйтесь, чтобы оставить комментарий ниже!

Первоначально опубликовано на https://wfale.net 2 января 2023 г.