cv_bridge安装配置问题解决

在尝试编译ROS的cv_bridge包时,遇到了因numpy导入问题导致的编译错误。解决方案是修改cv_bridge源码中的module.hpp文件,将返回void*的函数修改为不返回任何值的函数,从而成功通过make安装。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参照如下的方法完成:
https://blog.csdn.net/double_ZZZ/article/details/113254903

下载vision_opencv-noetic,文件夹下包含cv_bridge文件。
https://codechina.csdn.net/mirrors/ros-perception/vision_opencv/-/archive/noetic/vision_opencv-noetic.zip
执行:
cd cv_bridge
mkdir build
cd build
cmake …
make
sudo make install
命令

当执行到make命令时,遇到同样的问题:

/home/xxx/catkin_ws/src/cv_bridge/src/module.hpp: In function ‘void* do_numpy_import():
/usr/include/python2.7/numpy/__multiarray_api.h:1532:144: error: return-statement with no value, in function returning ‘void*[-fpermissive]
 rt_array() {if (_import_array() < 0) {PyErr_Print(); PyErr_SetString(PyExc_ImportError, "numpy.core.multiarray failed to import"); return NUMP
                                                                                                                                    ^
/home/xxx/catkin_ws/src/cv_bridge/src/module.hpp:38:5: note: in expansion of macro ‘import_array’
     import_array( );
     ^
In file included from /home/xxx/catkin_ws/src/cv_bridge/src/module.cpp:35:0:
/home/xxx/catkin_ws/src/cv_bridge/src/module.hpp:39:12: error: ‘nullptr’ was not declared in this scope
     return nullptr;
            ^
src/CMakeFiles/cv_bridge_boost.dir/build.make:62: recipe for target 'src/CMakeFiles/cv_bridge_boost.dir/module.cpp.o' failed
make[2]: *** [src/CMakeFiles/cv_bridge_boost.dir/module.cpp.o] Error 1
CMakeFiles/Makefile2:963: recipe for target 'src/CMakeFiles/cv_bridge_boost.dir/all' failed
make[1]: *** [src/CMakeFiles/cv_bridge_boost.dir/all] Error 2
Makefile:138: recipe for target 'all' failed
make: *** [all] Error 2

采用方法:
解决方法是,修改/home/nano/catkin_ws/src/cv_bridge/src/module.hpp(根据自己的路径),将最后一段(36~40)行:

static void * do_numpy_import( )
{
    import_array( );
    return nullptr;
}

改为:

static void do_numpy_import( )
{
	import_array( );
}

执行make通过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值