将符号添加到静态库的外部名称目录
我对 otool 和 nm 为特定静态库生成的符号列表的差异感到困惑。我试图链接一些静态库来创建最终的可执行文件,但链接器抱怨未定义的符号:“_main”,引用自:crt1.o 中的_main$non_lazy_ptr
。如果我对其中一个库 (libext.a
) 执行 nm
,我会看到 _main
是在名为 main 的文件中定义的.o
。但如果我在同一个库上执行 otool-s
,我会发现存档的 __.SYMDEF
部分中不存在 _main
。如何强制 _main
包含在此部分中?在库上执行 ranlib -c
没有帮助。
I am confused by the difference in the symbol lists produced by otool
and nm
for a particular static library. I am trying to link a few static libraries to create the final executable but the linker is complaining that Undefined symbols: "_main", referenced from: _main$non_lazy_ptr in crt1.o
. If I do nm
on one of the libraries (libext.a
), I see that _main
is defined in a file called main.o
. but if I do a otool-s
on thesame library I see that _main
is not present in the __.SYMDEF
section of the archive. How do I force _main
to be included in this section? Doing ranlib -c
on the library does not help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论