我对boost 1.54有疑问。
目前我有我的main.cpp,当我输出我的提升版本时,我告诉我1.54没问题。我用
得到了这个LD_LIBRARY_PATH=/path/boost_1_54_0:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
LD_LIBRARY_PATH=/path/boost_1_54_0/stage/lib:${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
CPLUS_INCLUDE_PATH=/path/boost_1_54_0:${CPLUS_INCLUDE_PATH}
export CPLUS_INCLUDE_PATH
问题出在我对我的Cmake说的时候
find_package(需要Boost 1.54.0 COMPONENTS系统日志)
而不是
find_package(需要Boost COMPONENTS系统日志)
我收到的错误是最新版本是1.46我的系统版本。所以我的Cmake没有找到正确的提升路径。
将此路径提供给cmake的正确方法是什么?
set(Boost_ADDITIONAL_VERSIONS "1.54.0" )
set(BOOST_ROOT path/boost_1_54_0)
set(BOOST_INCLUDEDIR path/boost_1_54_0)
set(BOOST_LIBRARYDIR path/boost_1_54_0/lib)
我尝试了这个但是它没有工作。
更改此运行系统的原因是我想使用Boost日志,当我开始这个简单的例子时我得到了
未定义的引用`boost :: log :: v2_mt_posix :: trivial :: logger :: get()'
但这个问题在这里解决了
Boost.Log with CMake causing undefined reference error
但是为了解决这个问题,我需要在CMAKE上使用正确的加速版本
谢谢你的帮助,我非常擅长使用cmake
答案 0 :(得分:3)
FindBoost
脚本提供了一个选项Boost_NO_SYSTEM_PATHS
,可防止它检测到系统安装的1.46版本。您可能希望从命令行而不是CMake脚本本身设置它,以使您的构建系统保持可移植性。
之后,只需提供BOOST_ROOT
作为提示的Boost 1.54路径(最好以系统环境变量的形式),它应该可以工作。在进行这样的更改后,请不要忘记清除以前任何搜索结果的CMake缓存。