Все статьи / Установка библиотек для Windows

Краткая инструкция по установке всех нужных для курса библиотек для Visual Studio


На Windows рекомендуется использовать

  • Visual Studio Community Edition последней версии для разработки
  • vcpkg для установки пакетов
  • CMake для сборки некоторых библиотек

Без vcpkg каждую библиотеку придётся ставить по отдельности. Пакетный менеджер vcpkg автоматизирует скачивание и сборку библиотек на машине разработчика.

Установка CMake

Для сборки примеров потребуется CMake. Свои работы можно делать без CMake.

  • Скачайте Cmake с официального сайта
  • При установке не забудьте поменять опцию, чтобы путь к CMake был добавлен в переменную PATH

Скриншот

  • Переменные окружения, такие как PATH, передаются приложению при старте. Если вы поменяли переменную PATH, изменения вступят в силу после перезапуска программ.

Установка и использование vcpkg

Источник: blogs.msdn.microsoft.com/vcblog/2016/09/19/vcpkg-a-tool-to-acquire-and-build-c-open-source-libraries-on-windows

Пакетный менеджер 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, добавляющий этот файл.