c++ 编译动态库出现undefined symbol

如何debug

可以使用nm指令查看undifined simbol的编译的位置:

nm -D test.so 

输出:

000000000099a4dc B _ZN7teaflow9ns_uint64E
0000000000213a10 T _ZN7teaflowlsERSoPKNS_2OpE
0000000000204e00 T _ZN7teaflowlsERSoPKNS_3VarE
                 U _ZN7teaflowlsERSoPKNS_4NodeE
000000000021d790 T _ZN7teaflowlsERSoRKNS_11FloatOutputE
00000000001cd6f0 T _ZN7teaflowlsERSoRKNS_11OpInspectorE

可以看到0000000000204e00位置下面出现了 undefined symbol U _ZN7teaflowlsERSoPKNS_4NodeE.

(2)使用

nm -D test.so  | c++filt

找到位置0000000000204e00

000000000099a4dc B teaflow::ns_uint64
0000000000213a10 T teaflow::operator<<(std::basic_ostream<char, std::char_traits<char> >&, teaflow::Op const*)
0000000000204e00 T teaflow::operator<<(std::basic_ostream<char, std::char_traits<char> >&, teaflow::Var const*)
                 U teaflow::operator<<(std::basic_ostream<char, std::char_traits<char> >&, teaflow::Node const*)
000000000021d790 T teaflow::operator<<(std::basic_ostream<char, std::char_traits<char> >&, teaflow::FloatOutput const&)
00000000001cd6f0 T teaflow::operator<<(std::basic_ostream<char, std::char_traits<char> >&, teaflow::OpInspector const&)

可以看出没有:
teaflow::operator<<(std::basic_ostream<char, std::char_traits >&, teaflow::Node const*)

具体的nm的输出的符号表示可以参考:https://blog.csdn.net/wvtear/article/details/50016285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

蓝鲸123

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

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

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

打赏作者

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

抵扣说明:

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

余额充值