Cmake包括提升1.54

时间:2013-10-25 12:47:08

标签: boost cmake

我对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

1 个答案:

答案 0 :(得分:3)

FindBoost脚本提供了一个选项Boost_NO_SYSTEM_PATHS,可防止它检测到系统安装的1.46版本。您可能希望从命令行而不是CMake脚本本身设置它,以使您的构建系统保持可移植性。

之后,只需提供BOOST_ROOT作为提示的Boost 1.54路径(最好以系统环境变量的形式),它应该可以工作。在进行这样的更改后,请不要忘记清除以前任何搜索结果的CMake缓存。