Я пытаюсь использовать 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 в любом случае.