Как установить vcpkg в visual studio code
Перейти к содержимому

Как установить vcpkg в visual studio code

  • автор:

установка vcpkg

В классическом режиме эта команда добавляет пакеты портов в существующий набор в установленном каталоге (по умолчанию используется installed/ в корневом каталоге vcpkg). Для этого может потребоваться удаление и перестроение существующих пакетов, которые могут завершиться ошибкой.

Синтаксис пакета
portname[feature1,feature2]:triplet 

Ссылки на пакеты без триплета автоматически определяются целевым триплетом по умолчанию. Ссылки на пакеты, не имеющие явного списка core , считаются подразумевающими все функции по умолчанию.

Режим манифеста

В режиме манифеста эта команда устанавливает установленный каталог в состояние, указанное в файле манифеста vcpkg.json , добавлении, удалении или перестроении пакетов по мере необходимости.

Параметры

Все команды vcpkg поддерживают набор общих параметров.

—allow-unsupported

Вместо остановки на неподдерживаемом порту продолжайте предупреждать.

По умолчанию vcpkg отказывается выполнять план установки, содержащий установку порта для триплета вне его «supports» предложения. Предложение «supports» пакета описывает полный набор платформ, на которые должен быть создан пакет. Этот флаг указывает vcpkg предупреждать, что сборка, как ожидается, завершится ошибкой, а не остановлена.

—clean-after-build

Очистка сборок, пакетов и скачивание после сборки каждого пакета.

—clean-buildtrees-after-build

Очистка всех подкаталогов из временной вложенной папки buildtrees после создания каждого пакета.

Все файлы верхнего уровня в подпапке buildtrees (например buildtrees/zlib/config-x64-windows-out.log , будут храниться). Все вложенные каталоги будут удалены.

—clean-downloads-after-build

Очистите все нерасчитаемые ресурсы из downloads/ папки после создания каждого пакета.

Все файлы верхнего уровня в папке downloads/ будут удалены. Извлеченные инструменты будут храниться.

—clean-packages-after-build

Очистите временные вложенные папки пакетов после сборки каждого пакета.

Вложенные папки пакетов для встроенного пакета (например, packages/zlib_x64-windows ) будут удалены после установки.

—dry-run

Распечатайте план установки, но не удаляйте или не устанавливайте пакеты.

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

—editable

  • Только классический режим

Выполняйте редактируемые сборки для всех напрямую на которые ссылаются пакеты в командной строке.

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

Передача флага —editable отключает это поведение, сохраняя изменения в извлеченных источниках в папке buildtrees/ . Это помогает быстро разрабатывать исправления, избегая необходимости записи файла при каждом изменении.

Источники, извлеченные во время редактируемой сборки, не имеют .clean/ суффикса в имени каталога и не будут очищаться последующими нередактируемыми сборками.

—enforce-port-checks

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

По умолчанию vcpkg запускает несколько проверка на встроенных пакетах и выдает предупреждения при обнаружении каких-либо проблем. Этот флаг обновляет эти предупреждения до ошибки.

—x-feature=

В этом разделе рассматривается экспериментальная функция vcpkg, которая может изменяться или удаляться в любое время.

Укажите дополнительную функцию из vcpkg.json зависимостей для установки.

По умолчанию будут установлены только «dependencies» зависимости «default-features» .

—head

  • Только классический режим

Запросите все пакеты, на которые явно ссылается командная строка, чтобы получить последние источники, доступные при сборке.

Этот флаг предназначен только для временного тестирования и не предназначен для производственного или долгосрочного использования. Это отключает двоичное кэширование для всех явно указанных пакетов и зависимых от нее пакетов, так как vcpkg не может точно отслеживать все входные данные.

—keep-going

Продолжайте план установки после первого сбоя.

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

—x-no-default-features

В этом разделе рассматривается экспериментальная функция vcpkg, которая может изменяться или удаляться в любое время.

Не устанавливайте компоненты по умолчанию из манифеста верхнего уровня.

При использовании install в режиме манифеста все зависимости компонентов, перечисленных в «default-features» списке, по умолчанию будут установлены. Этот флаг отключает это поведение, поэтому будут установлены только функции, явно включенные —x-feature .

—no-downloads

При создании пакета порты не загружают новые ресурсы во время сборки.

По умолчанию порты получат исходный код и инструменты по запросу из Интернета (при условии кэширования активов). Этот параметр блокирует скачивание и ограничивает порты только ресурсами, которые ранее были загружены и кэшированы на компьютере.

—only-downloads

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

При передаче этого параметра vcpkg будет запускать каждую сборку в плане, пока не будет выполнен первый вызов внешнего процесса без скачивания. Большинство портов выполняют все загрузки до первого вызова внешнего процесса (обычно в систему сборки), поэтому эта процедура скачивает все необходимые ресурсы. Порты, которые не следуют этой процедуре, не будут предварительно загружены их ресурсы.

—only-binarycaching

Отказаться от выполнения любых сборок. Восстановление пакетов из двоичных кэшей.

Этот флаг блокирует выполнение сборок по запросу и завершится ошибкой, если пакет не найден в двоичных кэшах.

—recurse

  • Только классический режим

Утверждение плана установки, требующего перестроения пакетов.

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

—x-use-aria2

В этом разделе рассматривается экспериментальная функция vcpkg, которая может изменяться или удаляться в любое время.

Используйте aria2 для выполнения задач загрузки.

—x-write-nuget-packages-config

В этом разделе рассматривается экспериментальная функция vcpkg, которая может изменяться или удаляться в любое время.

Записывает файл в формате NuGet packages.config для использования с двоичным кэшированием.

Этот параметр можно использовать вместе с —dry-run тем, чтобы получить список пакетов NuGet, необходимых для двоичного кэширования без создания или установки пакетов. Это позволяет вызывать командную строку NuGet отдельно для расширенных сценариев, таких как использование альтернативных протоколов для получения .nupkg файлов.

—no-print-usage

Подавление создания текста использования, напечатанного в конце установки.

Руководство. Установка и использование пакетов с vcpkg

В этом руководстве показано, как создать программу C++ «Hello World», которая использует библиотеку fmt с CMake и vcpkg. Вы установите зависимости, настройте, создадите и запустите простое приложение.

Необходимые компоненты

Для пользователей Windows msVC Visual Studio (Компилятор Microsoft Visual C++) является обязательным компилятором для разработки C++.

1. Настройка vcpkg

  1. Клонирование репозитория Первым шагом является клонирование репозитория vcpkg из GitHub. Репозиторий содержит скрипты для получения исполняемого файла vcpkg и реестра курируемых библиотек с открытым исходным кодом, поддерживаемых сообществом vcpkg. Для этого выполните следующую команду:
git clone https://github.com/microsoft/vcpkg.git 
cd vcpkg && bootstrap-vcpkg.bat 
cd vcpkg; .\bootstrap-vcpkg.bat 
cd vcpkg && ./bootstrap-vcpkg.sh 

2. Настройка проекта

  1. Настройте переменную среды VCPKG_ROOT .
export VCPKG_ROOT=/path/to/vcpkg export PATH=$VCPKG_ROOT:$PATH 

Примечание. Установка переменной VCPKG_ROOT среды с помощью export команды влияет только на текущий сеанс оболочки. Чтобы сделать это изменение постоянным в сеансах, необходимо добавить export команду в скрипт профиля оболочки (например, ~/.bashrc или ~/.zshrc ).

set VCPKG_ROOT="C:\path\to\vcpkg" set PATH=%VCPKG_ROOT%;%PATH% 

Примечание. Установка переменной VCPKG_ROOT среды с помощью set команды влияет только на текущий сеанс оболочки. Чтобы сделать это изменение постоянным в сеансах, можно использовать setx команду и перезапустить сеанс оболочки.

$env:VCPKG_ROOT = "C:\path\to\vcpkg" $env:PATH = "$env:VCPKG_ROOT;$env:PATH" 

Примечание. VCPKG_ROOT Настройка и обновление PATH переменных среды таким образом влияет только на текущий сеанс PowerShell. Чтобы сделать эти изменения постоянными во всех сеансах, необходимо добавить их в профиль PowerShell или задать их на панели переменных среды Windows.

mkdir helloworld && cd helloworld 

3. Добавление зависимостей и файлов проекта

  1. Создайте файл манифеста и добавьте fmt зависимость. Сначала создайте файл манифеста ( vcpkg.json ) в каталоге проекта, выполнив vcpkg new команду из helloworld каталога:
vcpkg new --application 

Затем добавьте fmt зависимость:

vcpkg add port fmt 

Файл vcpkg.json должен выглядеть следующим образом:

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) 
  • cmake_minimum_required(VERSION 3.10) : указывает, что минимальная версия CMake, необходимая для сборки проекта, — 3.10. Если версия CMake, установленная в вашей системе, ниже этой, будет создана ошибка.
  • project(HelloWorld) : задает имя проекта «HelloWorld».
  • find_package(fmt CONFIG REQUIRED) : ищет библиотеку fmt с помощью файла конфигурации CMake. Ключевое слово REQUIRED гарантирует, что ошибка создается, если пакет не найден.
  • add_executable(HelloWorld main.cpp) : добавляет исполняемый целевой объект с именем HelloWorld, созданный из исходного файла main.cpp .
  • target_link_libraries(HelloWorld PRIVATE fmt::fmt) : указывает, что исполняемый HelloWorld файл должен ссылаться на библиотеку fmt . Ключевое слово PRIVATE указывает, что fmt требуется только для строительства HelloWorld и не должен распространяться на другие зависимые проекты.

helloworld.cpp Создайте файл со следующим содержимым:

#include int main()

В этом helloworld.cpp файле заголовок включен для использования библиотеки fmt . Затем main() функция вызывает fmt::print() сообщение «Hello World!» в консоль.

4. Сборка и запуск проекта

  1. Запуск конфигурации CMake Чтобы система проектов CMake распознала библиотеки C++, предоставляемые vcpkg, необходимо предоставить vcpkg.cmake файл цепочки инструментов. Чтобы автоматизировать это, создайте CMakePresets.json файл в каталоге Helloworld со следующим содержимым:
< "version": 3, "configurePresets": [ < "name": "default", "binaryDir": "$/build", "cacheVariables": < "CMAKE_TOOLCHAIN_FILE": "$ENV/scripts/buildsystems/vcpkg.cmake" > > ] > 

Этот CMakePresets.json файл содержит одну предустановку по умолчанию для CMake и задает CMAKE_TOOLCHAIN_FILE переменную. Позволяет CMAKE_TOOLCHAIN_FILE системе проектов CMake распознавать библиотеки C++, предоставляемые vcpkg. CMakePresets.json Добавление автоматизирует процесс указания цепочки инструментов при запуске CMake. Настройте сборку с помощью CMake:

cmake --preset=default 
cmake --build build 
./build/HelloWorld Hello World! 

Следующие шаги

Дополнительные сведения см vcpkg.json . в нашей справочной документации:

Руководство. Установка зависимости из командной строки

Некоторые функции vcpkg недоступны в классическом режиме.

vcpkg имеет два режима работы: классический режим и режим манифеста. В этой статье описывается установка пакетов с помощью классического режима. Для большинства пользователей вместо этого рекомендуется использовать режим манифеста.

В классическом режиме vcpkg используется в качестве интерфейса командной строки для установки зависимостей в общем каталоге установки. Как правило, расположен в %VCPKG_ROOT%/installed каталоге %VCPKG_ROOT% установки vcpkg.

Из этого руководства вы узнаете следующее:

  • Создание проекта
  • Интеграция vcpkg с системой сборки
  • Установка зависимостей
  • Сборка проекта

Необходимые компоненты

  • vcpkg
  • Терминал
  • Редактор кода
  • Компилятора C++
  • (Необязательно) CMake или MSBuild

1. Создание проекта

В новой папке создайте исходный файл main.cxx с таким содержимым:

#include #include #include namespace view = ranges::views; int fib(int x) < int a = 0, b = 1; for (int it : view::repeat(0) | view::take(x)) < (void)it; int tmp = a; a += b; b = tmp; >return a; > int main(int argc, char **argv) < cxxopts::Options options("fibo", "Print the fibonacci sequence up to a value 'n'"); options.add_options()("n,value", "The value to print to", cxxopts::value()->default_value("10")); auto result = options.parse(argc, argv); auto n = result["value"].as(); for (int x : view::iota(1) | view::take(n)) < fmt::print("fib(<>) = <>\n", x, fib(x)); > > 

Код ссылается на библиотеки с открытым кодом: cxxopts , fmt и range-v3 , которые доступны в общедоступном реестре vcpkg.https://github.com/Microsoft/vcpkg

2. Интеграция vcpkg с системой сборки

На этом шаге мы покажем, как интегрировать vcpkg с CMake или MSBuild, чтобы зависимости проекта автоматически устанавливались или восстанавливались при сборке проекта.

Если вы используете другую систему сборки, перейдите к следующему шагу: установите зависимости.

Чтобы использовать vcpkg в проектах MSBuild, выполните следующую команду:

vcpkg integrate install 

Вам нужно выполнить vcpkg integrate install команду только при первом включении интеграции MSBuild. Это позволяет интегрировать MSBuild для всех существующих и будущих проектов. Используется vcpkg integrate remove для удаления интеграции на уровне системы MSBuild.

Этот метод интеграции автоматически добавляет пакеты, установленные vcpkg, в следующие свойства проекта: Include Directories , Link Directories и Link Libraries . Кроме того, это создает действие после сборки, которое гарантирует, что все необходимые библиотеки DLL копируются в выходную папку сборки. Это работает для всех решений и проектов с помощью Visual Studio 2015 или более поздней версии.

Чтобы использовать vcpkg в проектах CMake, необходимо задать CMAKE_TOOLCHAIN_FILE переменную для использования файла цепочки инструментов CMake vcpkg. Цепочка инструментов vcpkg находится в %VCPKG_ROOT%/scripts/buildsystems/vcpkg.cmake папке , где %VCPKG_ROOT% находится путь установки vcpkg.

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

  • Задайте в CMAKE_TOOLCHAIN_FILE файле CMakePresets.json.
  • Передайте -DCMAKE_TOOLCHAIN_FILE=/scripts/buildsystems/vcpkg.cmake в качестве параметра в вызове настройки CMake.
  • CMAKE_TOOLCHAIN_FILE Задайте переменную CMake перед первым вызовом project() в CMakeLists.txt файле.

3. Установка зависимостей

Код ссылается на библиотеки с открытым исходным кодом: cxxopts , fmt и range-v3 ; они доступны в общедоступном реестре vcpkg по адресу https://github.com/Microsoft/vcpkg.

Чтобы установить эти пакеты, используйте vcpkg install команду.

vcpkg install cxxopts fmt range-v3 
$ ./vcpkg install cxxopts fmt range-v3 Computing installation plan. The following packages will be built and installed: cxxopts:x64-windows -> 3.1.1 fmt:x64-windows -> 10.0.0 range-v3:x64-windows -> 0.12.0#1 * vcpkg-cmake:x64-windows -> 2023-05-04 * vcpkg-cmake-config:x64-windows -> 2022-02-06#1 Additional packages (*) will be modified to complete this operation. (omitted) cxxopts provides CMake targets: # this is heuristically generated, and may not be correct find_package(cxxopts CONFIG REQUIRED) target_link_libraries(main PRIVATE cxxopts::cxxopts) The package fmt provides CMake targets: find_package(fmt CONFIG REQUIRED) target_link_libraries(main PRIVATE fmt::fmt) # Or use the header-only version find_package(fmt CONFIG REQUIRED) target_link_libraries(main PRIVATE fmt::fmt-header-only) range-v3 provides CMake targets: # this is heuristically generated, and may not be correct find_package(range-v3 CONFIG REQUIRED) target_link_libraries(main PRIVATE range-v3::meta range-v3::concepts range-v3::range-v3) 

4. Создание проекта

Убедитесь, что триплет установленных пакетов соответствует конфигурации проекта. Используйте x64-windows или x64-windows-static для 64-разрядных проектов или x86-windows-static x86-windows для 32-разрядных проектов.

С включенной интеграцией на уровне системы просто выполните сборку msbuild проекта:

PS D:\projects\manifest-example> msbuild MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework Build started 8/13/2023 3:07:36 PM. Project "D:\projects\manifest-example\manifest-example.sln" on node 1 (default targets). ValidateSolutionConfiguration: (omitted) PrepareForBuild: (omitted) InitializeBuildStatus: (omitted) ComputeStdModulesCompileInputs: (omitted) SetModuleDependencies: VcpkgTripletSelection: Using triplet "x64-windows" from "D:\vcpkg\installed\x64-windows\" Using normalized configuration "Debug" ClCompile: (omitted) Link: (omitted) AppLocalFromInstalled: pwsh.exe -ExecutionPolicy Bypass -noprofile -File "D:\vcpkg\scripts\buildsystems\msbuild\applocal.ps1" "D:\projects\manifest-example\x64\Debug\manifest-example.exe" "D:\vcpkg\installed\x64-windows\debug\bin" "x64\Debug\manifest-example.tlog\manifest-example.write.1u.tlog" "x64\Debug\vcpkg.applocal.log" D:\projects\manifest-example\x64\Debug\fmtd.dll FinalizeBuildStatus: Deleting file "x64\Debug\manifest-example.tlog\unsuccessfulbuild". Touching "x64\Debug\manifest-example.tlog\manifest-example.lastbuildstate". Done Building Project "D:\projects\manifest-example\manifest-example.vcxproj" (default targets). Done Building Project "D:\projects\manifest-example\manifest-example.sln" (default targets). Build succeeded. 

Создайте проект, щелкнув его правой кнопкой мыши в Обозреватель решений и выбрав «Сборка «.

Build started. 1>------ Build started: Project: manifest-example, Configuration: Debug x64 ------ 1>main.cxx 1>manifest-example.vcxproj -> D:\projects\manifest-example\x64\Debug\manifest-example.exe 1>Done building project "manifest-example.vcxproj". ========== Build: 1 succeeded, 0 failed, 0 up-to-date, 0 skipped ========== ========== Build started at 3:16 PM and took 18.608 seconds ========== 
1. Создание файла CMakeLists.txt

Добавьте следующий CMakeLists.txt файл в папку проекта:

cmake_minimum_required(VERSION 3.15) project(fibonacci CXX) find_package(fmt REQUIRED) find_package(range-v3 REQUIRED) find_package(cxxopts REQUIRED) set(CMAKE_CXX_STANDARD 17) add_executable(fibo main.cxx) target_link_libraries(fibo PRIVATE fmt::fmt range-v3::range-v3 cxxopts::cxxopts) 
2. Настройка проекта CMake

Выполните следующую команду: cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=%VCPKG_ROOT%\scripts\buildsystems\vcpkg.cmake но замените %VCPKG_ROOT% путь установки vcpkg.

PS D:\projects\manifest-example> cmake -B build -S . -DCMAKE_TOOLCHAIN_FILE=D:/vcpkg/scripts/buildsystems/vcpkg.cmake -- Building for: Visual Studio 17 2022 -- Selecting Windows SDK version 10.0.19041.0 to target Windows 10.0.25921. -- The CXX compiler identification is MSVC 19.37.32814.0 -- Detecting CXX compiler ABI info -- Detecting CXX compiler ABI info - done -- Check for working CXX compiler: C:/Program Files/Microsoft Visual Studio/2022/Preview/VC/Tools/MSVC/14.37.32814/bin/Hostx64/x64/cl.exe - skipped -- Detecting CXX compile features -- Detecting CXX compile features - done -- Configuring done -- Generating done -- Build files have been written to: D:/projects/manifest-example/build 
3. Создание проекта CMake

Выполните следующую команду, чтобы создать проект: cmake —build build

PS D:\projects\manifest-example> cmake --build build MSBuild version 17.7.0-preview-23319-02+6829506b8 for .NET Framework Checking Build System Building Custom Rule D:/projects/manifest-example/CMakeLists.txt main.cxx fibo.vcxproj -> D:\projects\manifest-example\build\Debug\fibo.exe Building Custom Rule D:/projects/manifest-example/CMakeLists.txt 

Дальнейшие действия

В этом руководстве вы установили зависимости для простого проекта с помощью vcpkg в качестве интерфейса командной строки.

Ниже приведены некоторые дополнительные задачи, которые необходимо выполнить следующим образом:

  • Установка пакетов с помощью файла манифеста
  • Установка пакетов для пользовательских платформ с помощью тройных
  • Блокировка версий для повторяемых сборок с помощью управления версиями
  • Повторное использование двоичных файлов в непрерывной интеграции выполняется с помощью двоичного кэширования
  • Управление частными библиотеками с помощью пользовательских реестров

vcpkg в проектах MSBuild

Чтобы использовать vcpkg в проектах MSBuild, выполните следующую команду:

vcpkg integrate install 

Вам нужно выполнить vcpkg integrate install команду только при первом включении интеграции MSBuild. Это позволяет интегрировать MSBuild для всех существующих и будущих проектов.

Если у вас несколько экземпляров vcpkg, можно использовать vcpkg integrate install команду для обновления экземпляра vcpkg в MSBuild. Используется vcpkg integrate remove для удаления интеграции на уровне пользователей MSBuild.

Этот метод интеграции автоматически добавляет пакеты, установленные vcpkg, в следующие свойства проекта: включить каталоги, каталоги ссылок и библиотеки ссылок. Кроме того, это создает действие после сборки, которое гарантирует, что все необходимые библиотеки DLL копируются в выходную папку сборки. Это работает для всех решений и проектов с помощью Visual Studio 2015 или более поздней версии.

Это все, что вам нужно сделать для подавляющего большинства библиотек. Однако некоторые библиотеки выполняют конфликтующие действия, такие как переопределения main() . Так как необходимо выбрать один проект, который из этих конфликтующих параметров необходимо, необходимо вручную добавить эти библиотеки в входные данные компоновщика.

Ниже приведены некоторые примеры, в которых требуется связывание вручную (не исчерпывающий список):

  • Gtest предоставляет gtest , gmock gtest_main и gmock_main
  • Предоставляется SDL2 SDL2main
  • SFML предоставляет sfml-main
  • Boost.Test предоставляет boost_test_exec_monitor

Чтобы получить полный список для всех установленных пакетов, выполните команду vcpkg owns manual-link .

Импорт .props и .targets

vcpkg также можно интегрировать в проекты MSBuild, явно импортируя scripts/buildsystems/vcpkg.props и scripts/buildsystems/vcpkg.targets файлы в каждый .vcxproj . Используя относительные пути, это позволяет vcpkg использовать подмодул и автоматически получать пользователями при выполнении git clone .

Самый простой способ добавить их в каждый проект в решении — создать Directory.Build.props и Directory.Build.targets файлы в корне репозитория.

В следующих примерах предполагается, что они находятся в корне репозитория с подмодулой microsoft/vcpkg at vcpkg .

Пример: Directory.Build.props .
Пример: Directory.Build.targets .

Дополнительные сведения Directory.Build.targets см. в разделе «Настройка сборки» официальной документации ПО MSBuild. Directory.Build.props

Связанный пакет NuGet

Этот подход не рекомендуется для новых проектов, так как это затрудняет их совместное использование с другими пользователями. Переносимый автономный пакет NuGet см. в разделе export command .

Проекты VS также можно интегрировать с помощью пакета NuGet. Это приведет к изменению файла проекта, поэтому мы не рекомендуем использовать этот подход для открытый код проектов.

PS D:\src\vcpkg> .\vcpkg integrate project Created nupkg: D:\src\vcpkg\scripts\buildsystems\vcpkg.D.src.vcpkg.1.0.0.nupkg With a project open, go to Tools->NuGet Package Manager->Package Manager Console and paste: Install-Package vcpkg.D.src.vcpkg -Source "D:/src/vcpkg/scripts/buildsystems" 

Созданный пакет NuGet не содержит фактические библиотеки. Вместо этого он действует как ярлык (или symlink) к установке vcpkg и будет «автоматически» обновляться с любыми изменениями (установка и удаление) в библиотеки. Вам не нужно повторно создавать или обновлять пакет NuGet.

Типичная настройка

VcpkgEnabled (Использование Vcpkg)

Для этого можно задать значение false, чтобы явно отключить интеграцию vcpkg для проекта.

VcpkgConfiguration (Конфигурация Vcpkg)

Если имена конфигурации слишком сложны, чтобы vcpkg правильно угадывать, вы можете назначить это свойство Release или Debug явно сообщить vcpkg, какой вариант библиотек вы хотите использовать.

VcpkgEnableManifest (Использование манифеста Vcpkg)

Это свойство должно быть задано для true использования из локального vcpkg.json файла. Если задано значение false , все локальные vcpkg.json файлы будут игнорироваться.

В настоящее время это значение по умолчанию, но по умолчанию false используется true в будущем.

VcpkgTriplet (Триплет)

Это свойство управляет тройным набором для использования библиотек, таких как x64-windows-static или arm64-windows .

Если это не задано явным образом, vcpkg выведет правильный триплет на основе параметров Visual Studio. vcpkg будет выводить только триплеты, использующие динамическую компоновку библиотеки и динамическую компоновку CRT; Если требуется статические зависимости или использовать статические CRT ( /MT ), необходимо вручную задать триплет.

Вы можете увидеть автоматически выведенный триплет, задав для msBuild подробные сведения о нормальной или более поздней версии:

Сочетание клавиш: CTRL+Q «сборка и запуск»

Средства — параметры —>> проекты и решения —>> сборка и запуск проекта MSBuild — детализация выходных данных проекта MSBuild

VcpkgHostTriplet (Триплет узла)

Для разрешения зависимостей узла можно задать настраиваемый триплет.

Если этот параметр не задан, по умолчанию используется триплет «native» (x64-windows).

VcpkgInstalledDir (установленный каталог)

Это свойство определяет расположение vcpkg для установки и использования библиотек из.

В режиме манифеста это значение $(VcpkgManifestRoot)\vcpkg_installed\$(VcpkgTriplet)\ по умолчанию. В классическом режиме это значение $(VcpkgRoot)\installed\ по умолчанию.

Конфигурация режима манифеста

Чтобы использовать манифесты ( vcpkg.json ) с MSBuild, сначала необходимо использовать один из описанных выше методов интеграции. Затем добавьте vcpkg.json над файлом проекта (например, в корневом каталоге исходного репозитория) и задайте для свойства VcpkgEnableManifest значение true . Это свойство можно задать с помощью интегрированной среды разработки в свойствах>проекта Vcpkg>Использовать манифест Vcpkg. Чтобы просмотреть страницу свойств vcpkg, может потребоваться перезагрузить интегрированную среду разработки.

vcpkg будет выполняться во время сборки и установки всех перечисленных зависимостей vcpkg_installed/$(VcpkgTriplet)/ vcpkg.json рядом с файлом. Эти библиотеки будут автоматически включены и связаны с проектами MSBuild.

Известные проблемы

  • Visual Studio 2015 неправильно отслеживает изменения vcpkg.json в файлах и vcpkg-configuration.json файлах и не будет реагировать на изменения, если .cpp изменения не будут изменены.

VcpkgAdditionalInstallOptions (Дополнительные параметры)

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

VcpkgManifestInstall (Установка зависимостей Vcpkg)

Это свойство можно задать для false отключения автоматического восстановления зависимостей во время сборки проекта. Зависимости должны быть восстановлены вручную с помощью командной строки vcpkg отдельно.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *