本文为CSDN博主「Jason.Li_0012」的原创文章,原文链接:https://blog.csdn.net/weixin_45929038/article/details/115425996
项目场景:
博主最近将一个ROS Melodic项目移植到ROS Notic上时,发现在编译时会存在一些报错,特此记录解决方法。问题描述:
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<span class="token punctuation">.</span>cmake boost_signals<span class="token operator">-</span>config<span class="token punctuation">.</span>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
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
原因分析:
根据报错显示说明为Boost库存在问题,此处只需要进行安装该库文件并在CMakeLists内制定库文件目录即可。
解决方案:
1.安装库文件
前往该库文件的官网(https://www.boost.org/)点击下载所需版本即可。
此处下载当前(2021.4.4)最新稳定版本(1.75.0),点击 boost_1_75_0.tar.gz 进行下载压缩包。随后将其解压并进入命令行进行源码安装。
安装运行脚本命令如下,需要使用root权限进行运行。
sudo ./bootstrap.sh
- 1
运行结束如下所示,根据提示命令进行编译。
sudo ./b2
- 1
编译结束将出现如下提示,在进行编译时可以使用参数 -j 7 进行加快编译,其含义为使用7个线程同时进行编译。
2.修改CMakeList.txt
根据报错提示,找到报错的位置,打开文件进行修改。
此处将原有语句find package 注释并设置参数 Boost_INCLUDE_DIRS ,该语句的用以为告诉项目Boost库文件所在。
set(Boost_INCLUDE_DIRS /usr/include/boost)
- 1