cd /opt/ros/kinetic/share/cv_bridge/cmake
sudo cp cv_bridgeConfig.cmake cv_bridgeConfig.cmake.bak
sudo gedit cv_bridgeConfig.cmake
在新终端:
cd /usr/local/lib
ls libopencv_*.3.4.2 |xargs |sed 's/ /;/g'
###先将输出的内容复制
定位cv_bridgeConfig.cmake 112行(需搜索定位),从“cv_bridge;后替换已复制内容,修改后结果:
set(libraries "cv_bridge;libopencv_aruco.so.3.4.2;libopencv_bgsegm.so.3.4.2;libopencv_bioinspired.so.3.4.2;libopencv_calib3d.so.3.4.2;libopencv_ccalib.so.3.4.2;libopencv_core.so.3.4.2;libopencv_datasets.so.3.4.2;libopencv_dnn.so.3.4.2;libopencv_dpm.so.3.4.2;libopencv_face.so.3.4.2;libopencv_features2d.so.3.4.2;libopencv_flann.so.3.4.2;libopencv_fuzzy.so.3.4.2;libopencv_highgui.so.3.4.2;libopencv_imgcodecs.so.3.4.2;libopencv_imgproc.so.3.4.2;libopencv_line_descriptor.so.3.4.2;libopencv_ml.so.3.4.2;libopencv_objdetect.so.3.4.2;libopencv_optflow.so.3.4.2;libopencv_photo.so.3.4.2;libopencv_plot.so.3.4.2;libopencv_reg.so.3.4.2;libopencv_rgbd.so.3.4.2;libopencv_saliency.so.3.4.2;libopencv_shape.so.3.4.2;libopencv_stereo.so.3.4.2;libopencv_stitching.so.3.4.2;libopencv_structured_light.so.3.4.2;libopencv_superres.so.3.4.2;libopencv_surface_matching.so.3.4.2;libopencv_text.so.3.4.2;libopencv_tracking.so.3.4.2;libopencv_videoio.so.3.4.2;libopencv_video.so.3.4.2;libopencv_videostab.so.3.4.2;libopencv_viz.so.3.4.2;libopencv_xfeatures2d.so.3.4.2;libopencv_ximgproc.so.3.4.2;libopencv_xobjdetect.so.3.4.2;libopencv_xphoto.so.3.4.2")
定位cv_bridgeConfig.cmake 94行, 将路径替换为“/usr/local/include/opencv”,修改后如下:
if(NOT "include;/usr/local/include/opencv;/usr/local/include " STREQUAL " ")
set(cv_bridge_INCLUDE_DIRS "")
set(_include_dirs "include;/usr/local/include/opencv;/usr/local/include")
注意事项
cv_bridge包的CMakeList.txt中的OpenCV版本需要改成3.4.2
编译actor包的时候会用到qt_build:sudo apt-get install ros-kinetic-qt-build
需要在你的CMakeLists.txt中把cv_bridge包中OpenCV的配置改成3.4.2