Тройня
Triplet — это стандартный термин, используемый в перекрестном компиляции в качестве способа полного захвата целевой среды (ЦП, ОС, компилятора, среды выполнения и т. д.) в одном удобном имени.
В vcpkg триплеты описывают мнимый "целевой набор конфигурации" для каждой библиотеки. В триплете библиотеки обычно создаются с той же конфигурацией, но это не обязательно. Например, можно использовать один тройной набор, который выполняет openssl
сборку статически и zlib
динамически, то, что создает их как статически, так и тот, который создает их как динамически (все для одной целевой ОС и архитектуры).
Одна сборка будет использовать файлы с до двух тройных значений: целевой триплет и триплет узла. Если вам нужно применить различные параметры для разных библиотек, необходимо сделать один пользовательский триплет с помощью этого сочетания параметров. Сведения о том, как это сделать, см . в разделе о настройке для каждого порта.
vcpkg поставляется с предварительно определенными триплетами для многих распространенных платформ и конфигураций. Выполните команду vcpkg help triplet
, чтобы получить список доступных тройных в вашей среде.
Выбор триплета
Чтобы выбрать целевой триплет, выполните приведенные далее действия.
- В классическом режиме:
- Квалифицируйте ссылки на пакет с тройным именем, например
zlib:x64-windows-static-md
. - Передайте
--triplet=<triplet>
.
- Квалифицируйте ссылки на пакет с тройным именем, например
- В CMake:
- Задайте
VCPKG_TARGET_TRIPLET
.
- Задайте
- В MSBuild:
- Задайте
VcpkgTriplet
.
- Задайте
Чтобы выбрать триплет узла для текущего компьютера, выполните следующие действия.
- В классическом режиме:
- Передайте
--host-triplet=<triplet>
.
- Передайте
- В CMake:
- Задайте
VCPKG_HOST_TRIPLET
.
- Задайте
- В MSBuild:
- Задайте
VcpkgHostTriplet
.
- Задайте
Триплеты сообщества
Триплеты, содержащиеся в triplets\community
папке, не проверяются непрерывной интеграцией курированного реестра, но обычно запрашиваются сообществом. Так как у нас нет непрерывного покрытия, обновления портов могут нарушить совместимость с сообществом тройными. Мы рады принять и пересмотреть вклады, которые стремятся решить проблемы с этими тройными.
При использовании триплета сообщества во время установки пакета будет напечатано следующее сообщение:
-- Using community triplet x86-uwp. This triplet configuration is not guaranteed to succeed.
-- [COMMUNITY] Loading triplet configuration from: D:\src\vcpkg\triplets\community\x86-uwp.cmake
Добавление или замена триплетов
Вы можете расширить vcpkg, заменив встроенные триплеты или создав новые триплеты для конкретного проекта.
Сначала скопируйте встроенный тройной файл из triplets\
каталога в другое расположение файловой системы. Затем добавьте этот каталог в список тройных путей наложения при взаимодействии с vcpkg.
- В режиме манифеста можно использовать
$.vcpkg-configuration.overlay-triplets
. - При использовании vcpkg из CMake можно задать
VCPKG_OVERLAY_TRIPLETS
. - При использовании vcpkg из MSBuild можно добавить
--overlay-triplets=...
в MSBuild Дополнительные параметры. - При использовании интерфейса командной строки напрямую можно передать
--overlay-triplets=...
. - Для переменной
$VCPKG_OVERLAY_TRIPLETS
среды можно задать список путей наложения.
См. пример с наложениями для более подробного пошагового руководства.
Примечание.
Триплетные имена могут содержать только строчные буквы и дефисы.
Замечания
Триплет по умолчанию при выполнении любой команды vcpkg или %VCPKG_DEFAULT_TRIPLET%
выбор платформы, если эта переменная среды не определена.
- Windows:
x64-windows
- Linux:
x64-linux
- OSX:
x64-osx
Мы рекомендуем использовать схему систематического именования при создании новых триплетов. Схема именования цепочки инструментов Android — хороший источник вдохновения: https://developer.android.com/ndk/guides/standalone_toolchain.html