CV_bridge和ROS自带的opencv版本冲突
📌ROS自带opencv3.2.0,我后期又自己安装了opencv3.4.12,这就造成程序在调用opencv函数的时候,就有很大程度会“链接错”opencv的动态库,从而导致出错;
这里就不得不吐槽一下网上的解决方案!写的都不行啊!
首先,没有说明白Opencv安装的路径是什么,这很重要,后期修改都需要知道opencv 的安装路径;
其次,如果选择“在工作空间中重新下载安装cv_bridge”,一定一定要指定cv_bridge的版本,他妈的!一开始都没留意!
一直使用ROS melodic版本,一开始也试过在github找
ros-perception
/
vision_opencv
。但是!居然没有成功。后来看到了神贴:
https://blog.csdn.net/qq_36814762/article/details/110230127#commentBox
在这篇帖子中,大佬发布了自己的melodic版本的cv-bridge:
https://gitee.com/bingobinlw/cv_bridge
?_ from=gitee_search
不得不说,大佬是真牛逼啊。
好!正题开始。
- 首先!明确说了,如果自己安装了除了opencv3.2之外的opencv版本,那么就不要直接修改cv_bridge里面的各种文件!千万不要修改,要不然就会出现其他很奇葩的问题!
- 然后!按照大佬的操作一步一步运行:
https://blog.csdn.net/qq_36814762/article/details/110230127#commentBox
这个大佬牛逼就牛逼在:说出了opencv_dir的地址!网上的教程,都是什么/usr/lib/xxx
这么说没有错,但是!我是opencv源码安装的,opencv直接就在/home/lanzy目录下,如果直接写/urs/lib/xxx,那肯定还是不管用啊。
- 安装了指定的cv_bridge和指定了opencv的路径,那么下一步就是在工作空间(含cv_bridge)下进行catkin_make;如果幸运,那么不会报错。但是,大概率是会报错的,那么就参考:
https://blog.csdn.net/handsome_for_kill/article/details/114632972#commentBox
这一次出现的问题,都在上面的链接里出现过,有对应的解决方案;
至此!
在运行可执行文件的时候,就不会出现这样的错误:
可能有用的链接:
https://blog.csdn.net/qinqinxiansheng/article/details/120219388#commentBox