如何解决编译Lanelet2时CMake找不到boost_python3配置文件的错误
报错原因
Ubuntu 20.04 官方源提供的Boost 1.71版本中,libboost-python-dev包生成的CMake配置文件命名为boost_python38Config.cmake,而Lanelet2的CMake规则默认查找不带版本后缀的boost_python3Config.cmake,因此触发找不到依赖的报错。
解决步骤
按优先级选择以下方法即可:
方法一(最便捷):直接安装匹配命名的boost-python3开发包
执行安装命令:sudo apt install libboost-python3-dev安装完成后重新执行
catkin build即可。方法二(方法一无效时使用):手动创建配置文件软链接
进入系统Boost的CMake配置目录,创建不带版本号的配置文件软链接:cd /usr/lib/x86_64-linux-gnu/cmake/Boost-1.71.0/ sudo ln -s boost_python38Config.cmake boost_python3Config.cmake sudo ln -s boost_python38-config.cmake boost_python3-config.cmake之后清空对应包的编译缓存重新编译:
cd ~/catkin_ws catkin clean -y lanelet2_python catkin build方法三(前两种方法都不生效时使用):修改Lanelet2的CMake配置
找到lanelet2_python功能包下的CMakeLists.txt,将查找boost_python的代码行修改为指定版本:find_package(Boost REQUIRED COMPONENTS python38)若后续更换Python版本,把
38改为对应Python的版本号即可,比如Python3.9对应改为python39。
如果使用Python虚拟环境编译,需提前激活虚拟环境,且编译前指定Python路径,避免CMake调用系统默认Python:
catkin config --cmake-args -DPYTHON_EXECUTABLE=$(which python)
内容的提问来源于stack exchange,提问作者hdmapper
相关产品推荐
相关产品推荐

