Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом руководстве показано, как создать программу C++ Hello World, которая использует библиотеку fmt с CMake, vcpkg и Visual Studio. Вы установите зависимости, настройте, создадите и запустите простое приложение.
Необходимые компоненты
- Visual Studio с рабочей нагрузкой разработки C++ и компонентом CMake
- Git
1. Настройка vcpkg
Клонирование репозитория
Первым шагом является клонирование репозитория vcpkg из GitHub. Репозиторий содержит скрипты для получения исполняемого файла vcpkg и реестра курируемых библиотек с открытым исходным кодом, поддерживаемых сообществом vcpkg. Для этого выполните следующую команду:
git clone https://github.com/microsoft/vcpkg.gitУправляемый реестр vcpkg — это набор из более чем 2000 библиотек с открытым исходным кодом. Эти библиотеки были проверены конвейерами непрерывной интеграции vcpkg для совместной работы. Хотя репозиторий vcpkg не содержит исходный код для этих библиотек, он содержит рецепты и метаданные для сборки и установки их в систему.
Запуск скрипта начальной загрузки
Теперь, когда вы клонировали репозиторий vcpkg, перейдите к
vcpkgкаталогу и выполните скрипт начальной загрузки:cd vcpkg && bootstrap-vcpkg.batcd vcpkg; .\bootstrap-vcpkg.batcd vcpkg && ./bootstrap-vcpkg.shСкрипт начальной загрузки выполняет проверки готовности и загружает исполняемый файл vcpkg.
Вот и все! vcpkg настроен и готов к использованию.
2. Настройка проекта Visual Studio
Создание проекта Visual Studio
- Создание проекта в Visual Studio с помощью шаблона "Проект CMake"
Снимок экрана: пользовательский интерфейс Visual Studio для создания проекта CMake в Visual Studio
- Присвойте проекту имя helloworld
- Установите флажок "Разместить решение и проект в одном каталоге".
- Нажмите кнопку "Создать"
Снимок экрана: пользовательский интерфейс Visual Studio для именования проекта CMake и нажатия кнопки "Создать".
Настройте переменную среды
VCPKG_ROOT.Примечание.
Настройка переменных среды таким образом влияет только на текущий сеанс терминала. Чтобы сделать эти изменения постоянными во всех сеансах, задайте их на панели переменных среды Windows.
Откройте встроенное окно PowerShell разработчика в Visual Studio.
Снимок экрана: пользовательский интерфейс Visual Studio для встроенного окна разработчика PowerShell
Выполните следующие команды:
$env:VCPKG_ROOT="C:\path\to\vcpkg" $env:PATH="$env:VCPKG_ROOT;$env:PATH"
Снимок экрана: пользовательский интерфейс Visual Studio для встроенного окна разработчика PowerShell, в котором показано, как настроить VCPKG_ROOT и добавить его в PATH.
Откройте командную строку разработчика в Visual Studio.
Снимок экрана: пользовательский интерфейс Visual Studio для командной строки разработчика.
Выполните следующие команды:
set "VCPKG_ROOT=C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH%
Снимок экрана: командная строка разработчика Visual Studio, показывающая, как настроить VCPKG_ROOT и добавить ее в PATH.
Параметр
VCPKG_ROOTпомогает Visual Studio найти экземпляр vcpkg. Добавьте его, чтобыPATHвы могли выполнять команды vcpkg непосредственно из оболочки.Создайте файл манифеста и добавьте зависимости.
Выполните следующую команду, чтобы создать файл манифеста vcpkg (
vcpkg.json):vcpkg new --applicationКоманда
vcpkg newдобавляетvcpkg.jsonфайл иvcpkg-configuration.jsonфайл в каталог проекта.fmtДобавьте пакет в качестве зависимости:vcpkg add port fmtТеперь должно содержаться следующее
vcpkg.json:{ "dependencies": [ "fmt" ] }Это файл манифеста. vcpkg считывает файл манифеста, чтобы узнать, какие зависимости необходимо установить и интегрировать с CMake, чтобы предоставить зависимости, необходимые для проекта.
vcpkg-configuration.jsonСозданный файл представляет базовый план, который устанавливает минимальные ограничения версий для зависимостей проекта. Изменение этого файла выходит за рамки этого руководства. Хотя это не применимо в этом руководстве, рекомендуется сохранитьvcpkg-configuration.jsonфайл под управлением версиями, чтобы обеспечить согласованность версий в разных средах разработки.
3. Настройка файлов проекта
Измените файл
helloworld.cpp.Замените содержимое
helloworld.cppследующим кодом:#include <fmt/core.h> int main() { fmt::print("Hello World!\n"); return 0; }Этот исходный
<fmt/core.h>файл содержит заголовок, который является частью библиотекиfmt. Функцияmain()вызываетfmt::print()сообщение "Hello World!" в консоль.CMakePresets.jsonНастройте файл.CMake может автоматически связывать библиотеки, установленные vcpkg, если
CMAKE_TOOLCHAIN_FILEзадано использование пользовательской цепочки инструментов vcpkg. Это может быть компилировано с помощью предварительно настроенных файлов CMake.Измените
CMakePresets.jsonсодержимое, соответствующее приведенному ниже:{ "version": 2, "configurePresets": [ { "name": "vcpkg", "generator": "Ninja", "binaryDir": "${sourceDir}/build", "cacheVariables": { "CMAKE_TOOLCHAIN_FILE": "$env{VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake" } } ] }Создайте
CMakeUserPresets.jsonследующее содержимое:{ "version": 2, "configurePresets": [ { "name": "default", "inherits": "vcpkg", "environment": { "VCPKG_ROOT": "<path to vcpkg>" } } ] }Файл
CMakePresets.jsonсодержит один предустановку с именем vcpkg, который задаетCMAKE_TOOLCHAIN_FILEпеременную. ФайлCMakeUserPresets.jsonзадаетVCPKG_ROOTпеременную среды, чтобы указать абсолютный путь, содержащий локальную установку vcpkg. Рекомендуется не проверятьCMakeUserPresets.jsonсистемы управления версиями.Измените файл
CMakeLists.txt.Замените содержимое файла
CMakeLists.txtприведенным ниже кодом.cmake_minimum_required(VERSION 3.10) project(HelloWorld) find_package(fmt CONFIG REQUIRED) add_executable(HelloWorld helloworld.cpp) target_link_libraries(HelloWorld PRIVATE fmt::fmt)Теперь давайте разберем, что делает каждая строка в
CMakeLists.txtфайле:-
cmake_minimum_required(VERSION 3.10): указывает, что минимальная версия CMake, необходимая для сборки проекта, — 3.10. Если версия CMake, установленная в вашей системе, ниже этой, сборка завершается ошибкой. -
project(HelloWorld): задает имя проекта "HelloWorld". -
find_package(fmt CONFIG REQUIRED): ищет библиотекуfmtс помощью файла конфигурации CMake. КлючевоеREQUIREDслово гарантирует, что ошибка создается, если пакет не найден. -
add_executable(HelloWorld helloworld.cpp): добавляет исполняемый целевой объект с именем HelloWorld, созданный из исходного файлаhelloworld.cpp. -
target_link_libraries(HelloWorld PRIVATE fmt::fmt): указывает, что исполняемыйHelloWorldфайл должен ссылаться на библиотекуfmt. КлючевоеPRIVATEслово указывает, чтоfmtтребуется только для созданияHelloWorldи не должно распространяться на другие зависимые проекты.
-
4. Сборка и запуск проекта
Выполните сборку проекта.
Создайте проект с помощью
Build > Build Allпараметра в верхнем меню.Запустите приложение.
Наконец, запустите исполняемый файл:
Снимок экрана: пользовательский интерфейс Visual Studio для запуска исполняемого файла.
Вы должны увидеть выходные данные:
Снимок экрана: выходные данные программы : "Hello World!"
Следующие шаги
Дополнительные сведения см vcpkg.json. в нашей справочной документации: