vcpkg вроде бы собирает Boost с неверным компилятором - PullRequest
0 голосов
/ 22 января 2020

Я пытаюсь использовать vcpkg для создания и использования Boost. Возможно, это не лучшая практика, но я изменил триплет x64-windows напрямую и добавил эти

set(VCPKG_VISUAL_STUDIO_PATH "C:\\Program Files (x86)\\Microsoft Visual Studio\\2019\\Community")
set(VCPKG_PLATFORM_TOOLSET v142)

, чтобы он использовал последнюю версию Visual Studio, которую я имею. Странно то, что у меня нет другого набора инструментов VC ++ в любом случае. Это то, где вещи сбивают меня с толку. Я делаю vcpkg install boost:x64-windows. Строит нормально. Под ${vcpkg_dir}/installed/x64-windows я вижу, что библиотеки Boost, dll, include находятся здесь. Когда я использую это позже в проекте CMake, с find_package(Boost), я также получаю BOOST_FOUND=true. Повышение включает dirs, lib dirs et c. правильно установлены. Проблема в том, что BOOST_COMPILER говорит v140, и если я go до ${vcpkg_dir}/installed/x64-windows/lib, я вижу, что файлы boost lib имеют имена, подобные libboost_filesystem-vc140-mt-1_72.lib. Это говорит vc140! Если я go в папку bin, я вижу, что dll имеет vc142 в своем имени. В моем проекте CMake переменная BOOST_LIBRARIES пустая. Конечно, в моем проекте CMake я использую vc142.

Так что, мне кажется, мой проект CMake находит Boost, установленный с vcpkg, просто отлично. Но так как он видит несовместимые библиотеки, созданные с помощью vc140, он говорит, что BOOST_LIBRARIES пусты, и я не могу ссылаться на них. У кого-нибудь есть идеи, почему BOOST_COMPILER=v140, хотя я явно установил его для установки Visual Studio? Опять же, у меня нет другой установки Visual Studio в любом случае.

...