gpt4 book ai didi

c++ - 在 rosmake (CMakeLists.txt) 中为库指定自定义包含目录

转载 作者:行者123 更新时间:2023-11-28 06:50:15 25 4
gpt4 key购买 nike

对于 ROS 项目,我需要 Boost 1.55,目前它与 ROS 不兼容,所以我不能将它与 ROS 一起安装。由于无法从源代码编译 ROS,我想更改编译器查找 Boost 的目录(而不是 /usr/include/boost 只是我自己的目录)。

所以,如果我有 #include<boost/somefile.hpp> , 我希望它实际上包括 [package_folder]/include/boost/somefile.hpp ;这当然也适用于所有 #include在 Boost 库本身中。有没有一种简单的方法可以做到这一点(我认为应该在 CMakeLists.txt 文件中完成)

这是我尝试过的(包括@ruslo 建议的)

set(BOOST_ROOT include/boost_1_55_0)
find_package(Boost 1.55.0)

boost 状态变量表明一切顺利,但我仍然得到

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获取我的目录?

最佳答案

只需更改BOOST_ROOT变量:

cmake -DBOOST_ROOT=/your/boost/location ...other options...

关于c++ - 在 rosmake (CMakeLists.txt) 中为库指定自定义包含目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24082874/

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