ROS自带OpenCV和本地OpenCV版本冲突问题解决 |
您所在的位置:网站首页 › 预装的office2022卸载了怎么办 › ROS自带OpenCV和本地OpenCV版本冲突问题解决 |
1、报错信息
首先catkin_make编译功能包没有任何问题,100%生成目标文件,但是报了警告:库文件libmyslam.so需要的是libopencv_core.so.3.4,可能会与libopencv_core.so.3.2冲突。根据工程经验,警告不用管,直接运行完事。 [100%] Linking CXX executable /home/dzh/Demo/VO/devel/lib/ros_vo/run_vo /usr/bin/ld: warning: libopencv_core.so.3.4, needed by /home/dzh/Demo/VO/src/ros_vo/lib/libmyslam.so, may conflict with libopencv_core.so.3.2 /usr/bin/ld: warning: libopencv_imgcodecs.so.3.4, needed by /usr/local/lib/libopencv_highgui.so.3.4.5, may conflict with libopencv_imgcodecs.so.3.2 /usr/bin/ld: warning: libopencv_imgproc.so.3.4, needed by /usr/local/lib/libopencv_highgui.so.3.4.5, may conflict with libopencv_imgproc.so.3.2 [100%] Built target run_voroscore、rosrun之后出现核心已转储的报错。查找报错分析是cv_bridge默认调用的是ros自带的OpenCV版本3.2.0,我本地安装的是OpenCV3.4.5,在功能包下的CMakeLists.txt中找的package也是3.4.5,所以导致cv_bridge报错。 OpenCV Error: Bad argument (Unknown interpolation method) in resize, file /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp, line 3367 terminate called after throwing an instance of 'cv::Exception' what(): /build/opencv-L2vuMj/opencv-3.2.0+dfsg/modules/imgproc/src/imgwarp.cpp:3367: error: (-5) Unknown interpolation method in function resize 已放弃 (核心已转储) 2、解决方法1、首先,需要下载cv_bridge工程,只需要其中的cv_bridge文件夹。
修改cv_bridge/CMakeLists.txt文件中工程的名称: project(cv_bridge) 改为 project(cv_bridge_1)修改cv_bridge/package.xml中的包名称: cv_bridge 改为 cv_bridge_1修改cv_bridge/CMakeLists.txt文件中需要的OpenCV版本,改成你本地的版本: find_package(OpenCV 3.4.5 REQUIRED COMPONENTS opencv_core opencv_imgproc opencv_imgcodecs CONFIG )3、然后在你的工程根目录/src下进行catkin_make编译功能包。
6、重新catkin_make,然后rosrun即可成功运行,再无核心转储的报错。 探索了1小时,试了多种方法,最后总结出自己的一套方法。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |