Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/cmake/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Boost Cmake包括增压1.54_Boost_Cmake - Fatal编程技术网

Boost Cmake包括增压1.54

Boost Cmake包括增压1.54,boost,cmake,Boost,Cmake,我对boost 1.54有问题 目前我有main.cpp,当我输出boost版本时,我告诉我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=/pa

我对boost 1.54有问题

目前我有main.cpp,当我输出boost版本时,我告诉我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
问题是当我对我的孩子说

查找_包(需要Boost 1.54.0组件系统日志)

而不是

查找_包(需要Boost组件系统日志)

我得到一个错误,最新版本是我的系统版本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)
我试过了,但没用

改变这个运行系统的原因是我想使用boostlog,当我开始这个简单的例子时,我得到了

未定义对“boost::log::v2\u mt\u posix::triple::logger::get()的引用”

但这个问题在这里解决了

但是为了解决这个问题,我需要在CMAKE上使用正确的boost版本

感谢您的帮助和sry我对使用cmake非常陌生该脚本提供了一个选项
Boost\u NO\u SYSTEM\u path
,可防止它检测到系统安装的1.46版本。您可能希望从命令行而不是从CMake脚本本身设置它,以保持构建系统的可移植性


在此之后,只需提供一个
BOOST\u ROOT
,以BOOST 1.54的路径作为提示(最好是以系统环境变量的形式),它就可以工作了。在做出这样的更改后,不要忘记清除CMake缓存中以前的任何搜索结果。

感谢您的快速回答。Boost RooT现在正在工作,他找到了我的路径/Boost_1.54_0,在这个文件夹中我有我的Boost目录和我的文件。现在的问题是他找不到这个文件。我是否单独设置了boost include路径?或者有什么问题呢?我试图在find_包中添加几何图形(boost1.54.0必需的组件系统日志几何图形),但他没有找到。我不知道为什么我现在不获取几何体。hpp,因为她在路径/boost\u 1\u 54\u 0/boost/geometry中。hpp你有什么想法吗?@Hunk检查CMake缓存中
boost\u INCLUDE\u DIR
的值。它是否指向预期的目录?然后确保您实际使用了该值,并将其正确添加到CMake中的include路径。查看
FindBoost
的文档,了解查找脚本定位文件所需的目录布局。我检查了Boost\u INClUDE\u DIR的值,它指向正确的目录。在哪里可以找到FindBoost的目录布局?但我不认为这是问题所在,因为作为include目录,它告诉我path/boost\u 1\u 54\u 0,在这个目录上,我有一个包含头文件的boost目录。所以这应该是正确的。我真的不明白为什么他找不到这个文件我为我的目录状态写了一个输出**Boost包括:path/Boost\u 1\u 54\u 0状态**Boost库:path/Boost\u 1\u 54\u 0/stage/lib状态**Boost库:path/Boost\u 1\u 54\u 0/stage/lib/libboost\u系统。so@Hunk您是否执行
包含目录(${Boost\u INCLUDE\u DIRS})
在您的CmakeList中?