gpt4 book ai didi

linux - 尽管使用 BOOST_ROOT,但找不到我的本地 Boost 发行版而不是已安装的发行版

转载 作者:太空狗 更新时间:2023-10-29 11:46:38 26 4
gpt4 key购买 nike

我有一个关于 FindBoost 的问题。我正在尝试从我自己的 boost 1.49 发行版中选择 boost 组件,该发行版已经预装了默认的 boost 1.47。我想专门使用我的,我一直在尝试使用 BOOST_ROOT 作为缓存变量、内部缓存变量和使用 set(ENV{BOOST_ROOT} ) 的环境变量,但没有任何效果:我可以看到 BOOST_ROOT设置正确(指向1.49.0版本),但似乎对FindBoost生成的库路径没有影响:它们都指向1.47.0版本中的库。我正在尝试这个:

# I give a chance to the user to set BOOST_PATH to the local boost distribution before calling FindBoost
if( NOT DEFINED BOOST_PATH)
message(STATUS " Set BOOST_PATH to a specific Boost distribution if needed.")
set(BOOST_PATH "Default" CACHE PATH "Set the path to a specific Boost distribution if not default.")

# On the second pass, I use BOOST_PATH to initialize BOOST_ROOT, hoping that FindBoost will use it to find my local version.
else( NOT DEFINED BOOST_PATH)
if( NOT (BOOST_PATH MATCHES "Default"))
set(BOOST_ROOT ${BOOST_PATH} CACHE PATH "path to the preferred boost distribution.")
endif(NOT (BOOST_PATH MATCHES "Default"))

# I test to make sure the path in BOOST_ROOT is what I expect: it is on the console, as well as in the cache
message("BOOST_ROOT = ${BOOST_ROOT}")

set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_LIBS ON)
set(Boost_ADDITIONAL_VERSIONS "1.42" "1.42.0"
"1.43" "1.43.0"
"1.44" "1.44.0"
"1.45" "1.45.0"
"1.46" "1.46.0" "1.46.1"
"1.47" "1.47.0"
"1.48" "1.48.0"
"1.49" "1.49.0"
${BOOST_ADDITIONAL_VERSION}
)
set(Boost_DEBUG TRUE) # Debugging info output for FindBoost
set(Boost_DETAILED_FAILURE_MSG TRUE) # Set to FALSE by default


# I invoke FindBoost here, but although BOOST_ROOT points to my local boost, all the paths of the 3 components points to the installed debug/release variants, not to my local distribution.
find_package( Boost COMPONENTS date_time filesystem system program_options )

# unimportant code
[...]

endif( NOT DEFINED BOOST_PATH)

如果你能帮助我,我将不胜感激。非常感谢您。

尼古拉斯

最佳答案

在较新版本的 FindBoost.cmake (CMake 2.8.x) 中,可以设置一个变量来影响脚本寻找 Boost 的搜索路径。

它称为 Boost_NO_SYSTEM_PATHS,如果它设置为 TRUE,则不会查看安装在系统位置的库。

我不得不在我的一些项目中这样做,因为 find_package() 脚本混淆了两个 Boost 安装的库。

关于linux - 尽管使用 BOOST_ROOT,但找不到我的本地 Boost 发行版而不是已安装的发行版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9713629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com