Порты наложения
Обычно порты vcpkg получаются из реестров. Скорее всего, большинство установленных портов приходят из официального реестра vcpkg по адресу https://github.com/Microsoft/vcpkg. vcpkg позволяет устанавливать порты, доступные для вас через файловую систему, мы вызываем эти порты, наложения портов.
Порт наложения может выступать в качестве замены существующего порта или нового порта, который в противном случае недоступен в реестре. При разрешении имен пакетов порты наложения принимают приоритет.
Порты наложения оцениваются в следующем порядке:
- Расположения наложения, указанные в командной строке, через
--overlay-ports
. - Расположения наложения, указанные
vcpkg-configuration.json
в файле с помощьюoverlay-ports
. - Расположения наложения, указанные переменной
VCPKG_OVERLAY_PORTS
среды.
При разрешении имен портов выбрано первое расположение, содержащее соответствующий порт наложения.
Использование порта наложения
Каталог может представлять набор портов наложения и может быть указан одним из двух способов:
- Одинарный порт наложения:
<directory>/sqlite3
относится к одному порту - Каталог портов наложения:
<directory>
относится к каталогу портов, допустимый порт должен содержать обаvcpkg.json
иportfile.cmake
.
Можно добавить порт наложения несколькими способами:
- Командная строка: добавление одного или нескольких
--overlay-ports=<directory>
параметров в команду vcpkg - Манифест. Заполнение массива
"overlay-ports"
вvcpkg-configuration.json
- Переменная среды: задайте
VCPKG_OVERLAY_PORTS
список путей к каталогу
Пример наложения портов
Учитывая эту структуру каталогов:
Каталог наложения с именем team-ports содержит порты sqlite3, rapidjson и curl. Каталог наложения с именем my-ports содержит порты sqlite3 и rapidjson. Каталог vcpkg содержит каталог по умолчанию.
Запустить:
vcpkg install sqlite3 --overlay-ports=my-ports --overlay-ports=team-ports
Для установки:
sqlite3
изmy-ports
Запустить:
vcpkg install sqlite3 rapidjson curl
--overlay-ports=my-ports/rapidjson
--overlay-ports=vcpkg/ports/curl
--overlay-ports=team-ports
Для установки:
sqlite3
изteam-ports
rapidjson
изmy-ports
curl
из "vcpkg/порты"
Пример. Использование портов наложения для использования зависимости диспетчера системных пакетов
Чтобы использовать зависимость диспетчера системных пакетов от vcpkg one, обратитесь к нашей записи блога.
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по