boost在ros中的环境配置问题,提示 Could NOT find Boost (missing: system filesystem program_options regex
(found suitable version “1.65.1”, minimum required is “1.40.0”))
前情提示:
记得在~/.bashrc中配置好boost的环境位置:
export BOOST_INCLUDE=
export Boost_LIBRARY_DIRS=
出现的问题:
在cmakelist中加入find_package(Boost_COMPONENTS_)时,使用catkin_make进行编译,终端提示
CMake Error at /home/cita/software/cmake-3.25.0-linux-x86_64/share/cmake-3.25/Modules/FindPackageHandleStandardArgs.cmake:230 (message):
Could NOT find Boost (missing: system filesystem program_options regex)
(found suitable version "1.65.1", minimum required is "1.40.0")
解决方案:
首先,在cmakelists.txt中加入如下代码,使得cmakelist进入调试模式,然后删除devel和build,重新使用catkin_make进行编译,终端提示
set(Boost_DEBUG 1)
set(Boost_USE_STATIC_LIBS OFF)
set(Boost_USE_MULTITHREADED ON)
set(Boost_USE_STATIC_RUNTIME OFF)
find_package(Boost COMPONENTS)
if(Boost_FOUND)
MESSAGE("Boost_FOUND")
MESSAGE(WARNING "Boost_INCLUDE_DIRS is ${Boost_INCLUDE_DIRS}")
MESSAGE(WARNING "Boost_LIBRARIES is ${Boost_LIBRARY_DIRS}")
MESSAGE(WARNING "Boost_LIBRARIES is ${Boost_LIBRARIES}")
endif()
if(NOT Boost_FOUND)
message("NOT found Boost")
endif()
检查终端数据语句中和boost相关的如下语句
-- [ /home/cita/software/cmake-3.25.0-linux-x86_64/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "/opt/ros/melodic/lib"
查看Boost_LIBRARY_DIR_DEBUG后面跟的地址,如果是/opt/ros/melodic/lib,就会出错,接下来可以
cd opt/ros/melodic/lib
sudo rm libboost_*
这样就可以把opt/ros/melodic/lib中关于boost的链接库删了,重新编译就会变为如下,其中“/usr/local/lib”显示的是你自己的boost的安装位置,就可以编译成功了
-- [ /home/cita/software/cmake-3.25.0-linux-x86_64/share/cmake-3.25/Modules/FindBoost.cmake:807 ] Boost_LIBRARY_DIR_DEBUG = "/usr/local/lib"