Could not find a package configuration file provided by “boost_signals“

最近编译一个ROS开源包,报错如下

CMake Error at /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/BoostConfig.cmake:117 (find_package):
  Could not find a package configuration file provided by "boost_signals"
  (requested version 1.71.0) with any of the following names:

    boost_signalsConfig.cmake
    boost_signals-config.cmake

  Add the installation prefix of "boost_signals" to CMAKE_PREFIX_PATH or set
  "boost_signals_DIR" to a directory containing one of the above files.  If
  "boost_signals" provides a separate development package or SDK, be sure it
  has been installed.

解决问题有几个思路,先说成功的思路:

1. 我的boost版本是1.71.0,在这个版本已经把signal头文件和库移除,所以最简单的办法就是把CMakeList.txt中的代码移除:

find_package(Boost REQUIRED COMPONENTS signals)

Could not find a package configuration file provided by “boost_signals” - 代码先锋网

接下来说其他的尝试:

1. 下载boost的源码编译,然后指定boost的include和libs所在即可。

ROS noetic 解决boost_signals报错问题_Jason.Li_0012的博客-CSDN博客_boost_signals

2. 直接在源里下载有boost的包安装,因为我的环境是Ubuntu 20,ros noetic依赖boost 1.71.0版本,所以因无法解决依赖项放弃该选择。

2022.5.17更新:

最近被boost的undefine reference困了很久,查看boost的相关代码,报错的API都是在CPP文件里有实现。boost的调用三板斧就是:

find_package(Boost REQUIRED COMPONENTS system)
include_directories(include  ${Boost_INCLUDE_DIRS} ${catkin_INCLUDE_DIRS})
target_link_libraries(graph_map_fuser_node ${PROJECT_NAME} ${Boost_LIBRARIES})

总是解决不掉该问题,最后在所有开发包将find_package的COMPONENTS都加上,报错居然没有了。

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值