Skip to content

Instantly share code, notes, and snippets.

@ComradeMashkov
Last active November 16, 2023 18:15
Show Gist options
  • Save ComradeMashkov/4663af23dc89c4dc3d3e2395a6bb1fc7 to your computer and use it in GitHub Desktop.
Save ComradeMashkov/4663af23dc89c4dc3d3e2395a6bb1fc7 to your computer and use it in GitHub Desktop.

Сборка проекта DispatchWindow под ОС Windows

Введение

Салют! Этот гайд посвящен тому, как правильно собрать наш общий проект на операционной системе Windows.

Обговорим некоторые особенности сборки:

  1. Под SFML нужна особенная версия компилятора GCC

  2. Для проекта нужна самая последняя версия библиотеки Boost на данный момент (1.83.0)

  3. Для сборки необходима утилита CMake

После этого дело остается за малым. Начнем!

Выполняем требования SFML

Переходим на страницу загрузки SFML и видим тут следующую надпись:

“Compiler versions have to match 100%!” — нам нужно обязательно ей подчиниться. Иначе ничего не заработает.

Поэтому нажимаем на зеленую ссылку “WinLibs MSVCRT 13.1.0 (64-bit)” и загружаем архив с компилятором GCC версии 13.1.0. Больше тут ничего качать не нужно!

Untitled

Открываем папку, где у вас установлен MinGW и GCC (у меня это C:/MinGW) и удаляем от туда все, что там лежит. И потом все, что находилось в архиве в папке mingw64 перетаскиваем в нашу папку MinGW. В этой же папке находим папку “x86_64-w64-mingw32” и все, что там есть, перетаскиваем в папку MinGW (то есть на директорию выше) с заменой.

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

Выполняем требования Boost

Переходим на страницу загрузки Boost и загружаем архив для Windows. Настоятельно рекомендую загружать архивы формата .7z, так как их алгоритмы работают гораздо быстрее, чем аналогичные для .zip, соответственно распаковка пройдет быстрее.

Untitled

Создаем в любом удобном месте (желательно без кириллицы в пути) папку, куда мы будем разархивировать Boost. Открываем в ней терминал Git Bash.

Теперь пора вспомнить этот гайд. Надо проделать то же самое, что мы делали там для модуля Thread, только теперь нам нужен модуль Log.

Прописываем в уже открытом терминале следующие команды:

./bootstrap.bat gcc # запускаем скрипт для сборки и ждем
./b2.exe toolset=gcc --with-log # и еще раз ждем

По окончании процесса в папке Boost’a появится директория stage/lib, внутри которой будут установленная либа Boost.Log и еще туева хуча либ, от которых наша ненаглядная зависит. С этим покончили.

Установка CMake

Нам необходимо установить CMake, так как сборка проекта зависит именно от него. Грубо говоря — это такая универсальная система сборки, которая используется в крупных проектах и сильно упрощает их сборку.

Переходим на этот сайт, листаем немного вниз. Здесь среди всего прочего нас интересует табличка “Binary distributions”, а именно строка “Windows x64 Installer”.

Untitled

Запускаем загруженный установщик и обязательно выбираем на этом этапе второй пункт:

image_2023-11-16_19-23-12.png

По завершении установки нам необходимо набрать в меню Пуск “Изменение системных переменных среды”, откроется всеми забытое окно, в котором нас интересует кнопка “Переменные среды”.

Untitled

В открывшемся окне в его нижней части ищем переменную “Path” и нажимаем кнопку “Изменить”.

Untitled

Теперь самое важное. Если строка с путем установки CMake у вас лежит внизу, то нам обязательно надо перетащить ее вверх (нажав на кнопку “Вверх” несколько раз), пока она не будет выше, чем строка с путем до MinGW.

Вот как было:

Untitled

И как стало:

Untitled

Компьютер тоже перезагружать не надо. С самым трудным закончили.

Сборка проекта

Переходим на страницу своего ФОРКНУТОГО репозитория и нажимаем на кнопку “Sync fork” -> “Update branch”. Затем нажимаем на зеленую кнопку “Code”, выбираем вкладку “SSH” и нажимаем на значок “Скопировать”.

Untitled

Создаем в любом удобном месте на компьютере (как и водится, без кириллицы в пути) папку, где будет храниться наш проект. Открываем в этой папке терминал Git Bash.

В нем мы прописываем следующие команды:

git clone ссылка_которую_вы_скопировали # дожидаемся окончания загрузки
cd airborne-crew # переходим в папку скачанного репозитория (она создастся автоматически)

Ненадолго оставим консоль. Находим папку, где мы разархивировали Boost и копируем до нее путь, у меня это Z:\dev\boost_1_83_0.

Важно! Замените косые слеши \ на прямые /, чтобы получилось так: Z:/dev/boost_1_83_0.

Теперь заходим обратно в консоль и пишем следующие команды:

mkdir cmake_build # создаем папку где будет происходить сборка проекта
cd cmake_build # переходим в эту папку
cmake ../src -DCMAKE_BUILD_TYPE=Release -DBOOST_DIR=путь_до_вашей_папки_с_бустом -G "MinGW Makefiles"

Пойдет быстрый процесс подготовки к сборке. А теперь самый ответственный момент. Пишем эти команды:

cmake --build . # запускаем сборку
# придется подождать некоторое время
./main # запускаем исполняемый файл

Если у вас запустилось серое окошко с меню, в котором есть пару кнопок, то вы все сделали верно!

По любым вопросам пишите в телегу: @comrademashkov.

@ComradeMashkov
Copy link
Author

1
2
3
4
5
6
7
8
9

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment