【已解决】/opt/ros/noetic/lib/xx: symbol lookup error: undefined symbol

文章描述了在Ubuntu20.04和ROSnoetic环境下,遇到一个与base_local_planner相关的undefinedsymbol错误。通过使用c++filt工具解析错误信息,发现问题是由于依赖配置错误导致的。解决方案是正确配置功能包CMakeLists.txt中的base_local_planner依赖。该文属于《告别Bug》专栏,旨在记录和解决人工智能领域的技术问题。
摘要由CSDN通过智能技术生成

1 问题背景

环境:

  • Ubuntu20.04
  • ROS noetic

现象:
/opt/ros/noetic/lib/move_base/move_base: symbol lookup error: /home/winter/ROS/ros_learning_tutorials/Lecture19/devel/lib//libmy_planner.so: undefined symbol: _ZN18base_local_planner12CostmapModelC1ERKN10costmap_2d9Costmap2DE

2 问题探索

未定义符号错误undefined symbol一般是依赖配置错误导致,采用c++filt工具解析符号。c++filt是什么?g++编译器有名字修饰机制,其目的是给同名的重载函数不同的、唯一的签名识别,所有函数在编译后的文件中都会生成唯一的符号,c++filt可以逆向解析符号,还原函数,定位代码。

3 问题解决

采用c++filt工具解析符号

c++filt _ZN18base_local_planner12CostmapModelC1ERKN10costmap_2d9Costmap2DE
base_local_planner::CostmapModel::CostmapModel(costmap_2d::Costmap2D const&)

可以看出是base_local_planner的问题,需要在功能包CMakeLists.txt中配置base_local_planner的相关依赖。不同的符号对应到自己的代码,可以较快地发现问题。

4 告别Bug

本文收录于《告别Bug》专栏,该专栏记录人工智能领域中各类Bug以备复查,文章形式为:问题背景 + 问题探索 + 问题解决,订阅专栏+关注博主后可通过下方名片联系我进入AI技术交流群帮忙解决问题


👇源码获取 · 技术交流 · 抱团学习 · 咨询分享 请联系👇
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Mr.Winter`

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值