macOS下通过Homebrew安装Boost.Python解决ROS Melodic编译报错
macOS 11.5.1 编译ROS Melodic cv_bridge Boost.Python缺失解决方案
你遇到的问题是新版Homebrew已经移除了适配Python2.7的boost-python包,原有--with-python编译参数也已废弃,可根据是否需要Python接口选择以下方案解决:
方案1:无需cv_bridge Python接口(快速生效)
如果你的使用场景不需要通过Python调用cv_bridge,直接禁用Python绑定即可跳过boost-python依赖:
- 重新执行编译命令时,额外添加
-DBUILD_PYTHON_SUPPORT=OFF参数即可,完整命令如下:
./src/catkin/bin/catkin_make_isolated --install -DCMAKE_BUILD_TYPE=Release -DCMAKE_MACOSX_RPATH=ON -DCMAKE_INSTALL_RPATH=$HOME/ros_catkin_ws/install_isolated/lib -DCMAKE_PREFIX_PATH="/usr/local/Cellar/qt@5/5.15.2;${HOME}/ros_catkin_ws/install_isolated" -DCMAKE_CXX_STANDARD=17 --pkg cv_bridge -DBUILD_PYTHON_SUPPORT=OFF
方案2:需要cv_bridge Python2接口
需手动编译与本地Boost版本(1.76.0)匹配的boost-python组件:
- 下载Boost 1.76.0源码包到本地
- 解压源码包后进入对应目录
- 执行配置脚本指定Python2.7路径:
./bootstrap.sh --with-python=/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 --with-python-root=/Library/Frameworks/Python.framework/Versions/2.7
- 仅编译安装boost_python组件:
./b2 --with-python install
- 验证安装结果,执行以下命令如果输出对应库文件则安装成功:
ls /usr/local/lib | grep boost_python27
- 重新执行原有cv_bridge编译命令即可,若仍提示找不到boost_python,可在编译命令末尾添加参数指定cmake配置路径:
-Dboost_python_DIR=/usr/local/lib/cmake
内容的提问来源于stack exchange,提问作者minami kotori
相关产品推荐
相关产品推荐

