ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,报symbol lookup error和undefined symbol错误的解决办法

在ubuntu 16.04使用IntelRealSense D435i调用realsense ROS包时,运行

roscore

roslaunch realsense2_camera rs_rgbd.launch

出现错误,报错如下:

/opt/ros/kinetic/lib/nodelet/nodelet: symbol lookup error: /home/xxx/catkin_ws/devel/lib//librealsense2_camera.so: undefined symbol: _ZN20ddynamic_reconfigure19DDynamicReconfigure16registerVariableIiEEvRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEET_RKN5boost8functionIFvSA_EEES9_SA_SA_

解决思路:
1)查找系统内librealsense2_camera.so的数量
sudo find / -name librealsense2_camera.so
2)如果发现librealsense2_camera.so在不同路径下存在多个文件时,比如:
/home/xxx/catkin_ws/devel/lib/librealsense2_camera.so
/opt/ros/kinetic/lib/librealsense2_camera.so
3)这就产生了引用歧义,即/opt/ros/kinetic/lib/nodelet/nodelet不知道引用哪个库文件进行加载,经测试发现,nodelet原本引用/opt/ros/kinetic/lib/路径下的
librealsense2_camera.so文件,但是,链接到/home/xxx/catkin_ws/devel/lib/路径下的librealsense2_camera.so文件。
4)删除/home/xxx/catkin_ws/devel/lib/路径下的librealsense2_camera.so文件,重新运行后,恢复正常。

  • 6
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 14
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值