symbol lookup error:XXX.so: undefined symbol: 解决办法

通过 ldd -r xxx.so 命令查看so库链接状态和错误信息

ldd命令,可以查看对应的可执行文件或库文件依赖哪些库,但可执行文件或库文件要求与操作系统的编译器类型相同,即电脑是X86的GCC编译器,那么无法通过ldd命令查看ARM交叉编译器编译出来的可执行文件或库文件。

如果想在Ubuntu等Linux宿主机上查看ARM交叉编译好的可执行程序和库文件的相关依赖关系,可以通过以下命令:
readelf -d xxx.so | grep NEEDED

  1. # lichunhong @ lichunhong-ThinkPad-T470p in ~/Documents/src/effective_robotics_programming_with_ros-master/catkin_ws/src/pathPlan/lib on git:lichunhong/dev x [18:57:19]

  2. $ ldd -r libpathplan.so

  3. linux-vdso.so.1 => (0x00007ffec1bd8000)

  4. libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007f186cc0a000)

  5. libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007f186c901000)

  6. libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007f186c6eb000)

  7. libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f186c321000)

  8. /lib64/ld-linux-x86-64.so.2 (0x00007f186d27a000)

  9. undefined symbol: pthread_create (./libpathplan.so)

  10. undefined symbol: _ZN12ninebot_algo10AprAlgoLog9instance_E (./libpathplan.so)

  11. undefined symbol: _ZN2cv3maxERKNS_3MatES2_ (./libpathplan.so)

  12. undefined symbol: _ZN12ninebot_algo10AprAlgoLog8WriteLogE10LEVEL_TYPEPKcS3_z (./libpathplan.so)

  13. undefined symbol: _ZN2cv6dilateERKNS_11_InputArrayERKNS_12_OutputArrayES2_NS_6Point_IiEEiiRKNS_7Scalar_IdEE (./libpathplan.so)

  14. undefined symbol: _ZN2cvgtERKNS_3MatEd (./libpathplan.so)

  15. undefined symbol: _ZN2cv8fastFreeEPv (./libpathplan.so)

  16. undefined symbol: _ZN2cv3Mat5setToERKNS_11_InputArrayES3_ (./libpathplan.so)

  17. undefined symbol: _ZN12ninebot_algo10AprAlgoLog9instance_E (./libpathplan.so)

可以看到有好多 undefined symbol ,其中就有提到的 _ZN12ninebot_algo10AprAlgoLog9instance_E 错误

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值