Я ошибочно определил переменную среды VCPKG_ROOT
для каталога, который является подкаталогом корневого каталога проекта vcpkg
.
Это простая ошибка, которую можно сделать, как я опишу ниже.
Исполняемый файл vcpkg
сам проверяет наличие переменной среды VCPKG_ROOT
и, если присутствует, использует ее значение для переопределения пути к корневой папке дляvcpkg
проект, который используется внутренне запущенным двоичным файлом vcpkg
.
Я создал переменную среды с тем же именем (VCPKG_ROOT
) для другой цели - так, чтобы моё собственное нижестоящее приложение могло быть предоставленопуть к файлам include
для библиотеки , установленной по vcpkg
.Имеет смысл выбрать имя VCPKG_ROOT
, поскольку на самом деле vcpkg
по умолчанию устанавливает библиотеки в подкаталог своего корневого каталога.
В частности:
- Если корневым каталогом проекта 'vcpkg' является
<vcpkg>
... - ..., то по умолчанию исполняемый файл
vcpkg
устанавливает библиотеки так, что размещаются пути включения для установленных библиотек.в <vcpkg>\installed\...\include\
(и другие библиотечные файлы, такие как двоичные файлы, также помещаются в каталоги, вложенные в <vcpkg>
.)
Проблема заключалась в том, что я определил VCPKG_ROOT
быть второй пулей, а не первой.Поэтому сделать ошибку легко, учитывая, что выбор имени "VCPKG_ROOT
" имеет смысл в обоих сценариях!
Я только что предложил улучшенное сообщение об ошибке через запрос на получение vcpkg
проект - если его принять, это может спасти другую бедную душу от стресса и потерять время на поиск этого сбоя.