ros2的cv_bridge库opencv版本不匹配问题 libopencv_imgcodecs.so.4.2: cannot open shared object file

ros2的cv_bridge库opencv版本不匹配问题

  1. 问题:
libopencv_imgcodecs.so.4.2: cannot open shared object file: no such file or directory
  1. 原因
    ros安装的时候默认的opencv版本是4.2,和本地安装的opencv版本不匹配(我的本地安装的是4.5)

  2. 解决方案
    单独重新安装cv_bridge库

//下载对应版本的cv_bridge包(我安装的foxy)
$ git clone https://github.com/ros-perception/vision_opencv.git -b foxy
//进入cv_bridge目录,
//修改CMakeLists.txt文件的opencv版本号,
//改成自己本地安装的版本

find_package(OpenCV 4 QUIET // 改成find_package(OpenCV 5 QUIET, 如果是4.X或3.X,不需要更改
  COMPONENTS
    opencv_core
    opencv_imgproc
    opencv_imgcodecs
  CONFIG
)
//编译的时候指定安装路径(ros2安装的目录下,我的ros2安装目录:/opt/ros/foxy)
$ cd vision_opencv/cv_bridge
$ mkdir build && cd build
$ cmake -DCMAKE_INSTALL_PREFIX=/opt/ros/foxy ..
$ sudo make install
注意:如果安装了anaconda,需要先退出掉当前的anaconda环境,
$ conda deacrtivate env_name, 
再在本地环境下安装,
否则会报错(anaconda环境和ros2环境会有冲突).

posted @ 2023-01-05 18:29  云山乱乱  阅读(1138)  评论(0编辑  收藏  举报