Все статьи Установка библиотек для Windows
Краткая инструкция по установке всех нужных для курса библиотек для Visual Studio
На Windows рекомендуется использовать
- Visual Studio Community Edition последней версии для разработки
- vcpkg для установки пакетов
- CMake для сборки некоторых библиотек
Без vcpkg каждую библиотеку придётся ставить по отдельности. Пакетный менеджер vcpkg автоматизирует скачивание и сборку библиотек на машине разработчика.
Установка CMake
Для сборки примеров потребуется CMake. Свои работы можно делать без CMake.
- Скачайте Cmake с официального сайта
- При установке не забудьте поменять опцию, чтобы путь к CMake был добавлен в переменную PATH
- Переменные окружения, такие как PATH, передаются приложению при старте. Если вы поменяли переменную PATH, изменения вступят в силу после перезапуска программ.
Установка и использование vcpkg
Пакетный менеджер vcpkg распространяется в исходниках и собирается на машине разработчика. Для сборки потребуется установленная Visual Studio с инструментами C++ разработчика.
Порядок установки описан в консольных командах:
:: Клонируем репозиторий vcpkg (ветка master)
git clone https://github.com/Microsoft/vcpkg
:: Переходим в каталог клона репозитория
cd vcpkg
:: Выполняем скрипт для сборки vcpkg
powershell -exec bypass scripts\bootstrap.ps1
:: Теперь в корне репозитория лежит vcpkg.exe, который можно вызывать
:: из каталога либо добавить в переменную окружения PATH.
:: Установка библиотеки выполняется командой install
vcpkg install sdl2:x86-windows-static sdl2:x64-windows-static
Из команды выше легко понять, что имена пакетов перечисляются по порядку, а в качестве суффикса используется так называемый “триплет”: имя_пакета:триплет
.
- Имя пакета задаёт одно из множества имён доступных библиотек.
- Триплет задаёт архитектуру и режим сборки
Доступные триплеты:
arm-uwp.cmake
x64-uwp.cmake
x64-windows-static.cmake
x64-windows.cmake
x86-uwp.cmake
x86-windows-static.cmake
x86-windows.cmake
Для данного курса рекомендуются триплеты x86-windows-static
для сборки 32-битной версии программы и x64-windows-static
для сборки 64-битной версии. Суффикс static означает, что библиотеки будут собираться статически и вам не потребуется распространять DLL.
Вместо явного указания триплета для каждой библиотеки можно разом указать триплет для всех:
vcpkg --triplet x86-windows-static sdl2 sdl2-image
Последняя, но крайне важная деталь: включите автоматическую интеграцию пакетов vcpkg во все проекты Visual C++:
:: Включаем интеграцию во все проекты Visual C++ в системе.
:: При первом запуске нужны права администратора.
vcpkg integrate install
:: Удаляем интеграцию - если она вам помешала.
vcpkg integrate remove
Установка пакетов для курса
Мы используем следующие библиотеки:
- sdl2, sdl2-image, sdl2-mixer, sdl2-ttf в целях абстрагирования от операционной системы для создания окон, растеризации текстовых надписей, загрузки изображений с диска, загрузки и проигрывания звуковых файлов
- glbinding для прозрачного подключения нужной версии API OpenGL без необходимости вручную работать с механизмом расширений OpenGL
- assimp3 для загрузки 3D моделей из множества форматов файлов
- anax для построения архитектуры программы на принципах Component-Entity-System
- bullet3 для расчёта столкновений в 3D пространстве
- glm для работы с линейной алгеброй в рамках задач 3D графики
- nlohmann-json для загрузки JSON
- tinyxml2 для загрузки XML
Команда для установки 32-битных версий библиотек из исходников может выполняться долго, т.к. сборка занимает длительное время:
vcpkg --triplet x86-windows-static sdl2 sdl2-image sdl2-mixer sdl2-ttf glbinding assimp anax bullet3 glm nlohmann-json tinyxml2
Настройка gitignore для своих проектов
В Visual Studio управление настройками сборки производится в графическом режиме в окне настроек проекта, хотя сами настройки сохраняются в XML определённой схемы в файле *.vcxproj
. Виртуальные папки (фильтры), по которым разложены файлы проекта, сохраняются в файле *.vcxproj.filters
. Настройки проекта из раздела Debugging, а также некоторые неявные пользовательские настройки сохраняются в *.vcxproj.user
. Есть общепринятые правила:
- Файлы
*.vcxproj
необходимы и достаточны для сборки проекта, их следует держать под контролем версий Git, а настройки проекта изменять аккуратно - Файлы
*.vcxproj.filters
не нужны для сборки, но хранят фильтры файлов, их тоже следует держать под контролем версий Git - Файлы
*.vcxproj.user
хранят специфичные для компьютера настройки, их не следует держать в Git - Файлы
*.sln
хранят списки проектов и информацию о сборке всего списка проектов в разных конфигурациях. Их следует держать в Git.
Вы можете взять готовый шаблон файла .gitignore
из репозитория github.com/github/gitignore. После добавления файла .gitignore
в корень своего репозитория достаточно сделать commit, добавляющий этот файл.