如何将速推设置为其他版本?

How to set boost to a different version?

本文关键字:其他 版本 设置      更新时间:2023-10-16

我一直在使用 Boost 1.70.0,直到我意识到它与 CMake 有问题并且无法编译。然后我切换到 Boost 1.67.0,它在我的 Linux 容器上完美编译。问题是我的开发机器在 Windows 上运行(不幸的是(,当我尝试切换到 1.67.0 时,CMake 一直在 1.70.0 的文件夹中搜索 Boost。

起初,我试图让CMake寻找Boost的确切版本,如下所示:

find_package(Boost 1.67 EXACT)
find_package(Boost 1.67 EXACT REQUIRED COMPONENTS thread)

但是我从错误中看到它仍在查看原始的 1.70.0 位置:

CMake Error at C:/Program Files/CMake/share/cmake-3.15/Modules/FindPackageHandleStandardArgs.cmake:137 (message):
Could NOT find Boost: Found unsuitable version "0.0.0", but required is
exact version "1.67" (found C:/Program Files/boost_1_70_0)

所以我删除了该文件夹,并收到了相同的错误消息。我尝试使用命令将BOOST_ROOT环境变量设置为 1.67.0 文件夹

setx BOOST_ROOT "C:/Program Files/boost_1_67_0"

但我仍然收到同样的错误。

如何让 CMake 或我的系统忘记 boost 1.70.0 并识别提升 1.67.0?

将我们CMakeList.txt文件中的变量BOOST_ROOT设置为所需提升版本的路径,例如:

if(MSVC_VERSION EQUAL 1900)
set(MSVC_VERSION_STRING "vs2015")
set(MSVC_VERSION_YEAR "2015")
elseif(MSVC_VERSION GREATER_EQUAL 1910 AND MSVC_VERSION LESS_EQUAL 1919)
set(MSVC_VERSION_STRING "vs2017")
set(MSVC_VERSION_YEAR "2017")
else()
message(${MSVC_VERSION})
message("Please switch to Visual Studio 14 2015 or Visual Studio 15 2017.")
return()
endif()
find_path(BOOST_ROOT NAMES boost/version.hpp HINTS "C:\thirdparty\${MSVC_VERSION_STRING}\x64\boost_1_67_0")
# [... more cmake stuff ..]
find_package(Boost 1.67.0 COMPONENTS log signals system filesystem python3 REQUIRED)

无需将路径放在 CMakeLists.txt 文件中,您可以在批处理脚本中调用 CMake,例如setup.cmd这样:

cmake.exe ^
-G "Visual Studio 15 2017 Win64" ^
-HC:your_project ^
-BC:buildyour_project ^
-DBOOST_ROOT=C:thirdpartyvs2017x64boost_1_67_0
相关文章: