realsenseD400系列使用realense-ros出现“symbol lookup error ... undefined symbol: _ZN2cv3M “解决方法(这个问题在我这里终结)

插上相机后输入命令:

roslaunch realsense2_camera  rs_camera.launch

直接上报错:

/opt/ros/melodic/lib/nodelet/nodelet: symbol lookup error: /home/khz/ROS/catkin_ws/devel/lib//librealsense2_camera.so: undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE
[camera/realsense2_camera_manager-2] process has died [pid 4924, exit code 127, cmd /opt/ros/melodic/lib/nodelet/nodelet manager __name:=realsense2_camera_manager __log:=/home/khz/.ros/log/81b1e24a-8f95-11ec-8270-344b50000000/camera-realsense2_camera_manager-2.log].
log file: /home/khz/.ros/log/81b1e24a-8f95-11ec-8270-344b50000000/camera-realsense2_camera_manager-2*.log
[camera/realsense2_camera-3] process has finished cleanly
log file: /home/khz/.ros/log/81b1e24a-8f95-11ec-8270-344b50000000/camera-realsense2_camera-3*.log

报错截图如下:

realsenseD400系列使用realense-ros出现“symbol lookup error ... undefined symbol: _ZN2cv3M “解决方法(这个问题在我这里终结)_第1张图片

解决方法: 

在你的 realsense-ros的功能包文件夹下 realsense2_camera 文件夹下的 CmakeLists.txt文件中添加如下图红框框中的内容:

第一处:

realsenseD400系列使用realense-ros出现“symbol lookup error ... undefined symbol: _ZN2cv3M “解决方法(这个问题在我这里终结)_第2张图片

第二处:

realsenseD400系列使用realense-ros出现“symbol lookup error ... undefined symbol: _ZN2cv3M “解决方法(这个问题在我这里终结)_第3张图片

 问题总结:

报错是未定义的符号(undefined symbol: _ZN2cv3MatC1EiiiRKNS_7Scalar_IdEE), 里面的 cv Mat Scalar等词都是opencv库中的,所以可以判断是缺少了Opencv库,在cmakelists中添加即可.上面两步就是在做这个事情.

你可能感兴趣的:(自动驾驶,人工智能,机器学习)