ros plugin运行出现undefind symble的问题的定位方法

ros plugin运行出现undefind symble的问题的定位方法,第1张

参考自n大橘为重n的博客

其实和普通的c++程序定位undefind symble的问题是一样的,如果之前使用过linux下的c++定位undefind symble的方法且没有成功,那么大概率本文方法也不能成功。


问题描述:

以costmap layer插件为例,当我们自己写的插件运行出现undefind symble报错时:

这个问题表明是符号未定义的问题,而且直接定位于我们生成的插件libgrid_layer.so中。


其实如果是自己写的程序,看到_ZN22simple_layer_namespace9GridLayer9matchSizeEv时便可以大致猜到出现问题的可能是simple_layer_namespace::GridLayer::matchSize()。


当然,我们还是按照正常的方式定位。


使用c++filt定位具体问题
$ c++filt _ZN22simple_layer_namespace9GridLayer9matchSizeEv

可以看到具体出现问题的就是这个matchSize()函数,然后就去查看其是否被实现

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/563194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-02
下一篇 2022-04-02

发表评论

登录后才能评论

评论列表(0条)

保存