【发布时间】:2014-06-06 13:19:49
【问题描述】:
对于一个 ROS 项目,我需要 Boost 1.55,它目前与 ROS 不兼容,因此我无法将它与 ROS 一起安装。由于无法从源代码编译 ROS,我想更改编译器查找 Boost 的目录(而不是 /usr/include/boost 只是我自己的目录)。
所以,如果我有#include<boost/somefile.hpp>,我希望它实际上包含[package_folder]/include/boost/somefile.hpp;当然,这也必须适用于 Boost 库本身中的所有#include。有没有一种简单的方法可以做到这一点(我认为应该在CMakeLists.txt文件中完成)
这是我尝试过的(包括@ruslo 建议的)
set(BOOST_ROOT include/boost_1_55_0)
find_package(Boost 1.55.0)
升压状态变量表明进展顺利,但我仍然得到
fatal error: boost/graph/successive_shortest_path_nonnegative_weights.hpp: No such file or directory
所以,我列出了所有指向 /usr/include/ 的 cmake 变量并附加了我的 Boost 位置:
set(CMAKE_CXX_IMPLICIT_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include;/usr/include)
set(CMAKE_C_IMPLICIT_INCLUDE_DIRECTORIES ${PROJECT_SOURCE_DIR}/include;/usr/include)
set(GTEST_INCLUDE_DIR ${PROJECT_SOURCE_DIR}/include;/usr/include)
但无济于事。如何让rosmake 获取我的目录?
【问题讨论】:
-
set(BOOST_ROOT include/boost_1_55_0)这里需要设置完整路径 -
如果 boost 是强制库,则使用
find_package(Boost 1.55.0 REQUIRED)