首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在otool输出中,"binds_to_weak“和"weak_defines”标志表示什么?

在otool输出中,"binds_to_weak“和"weak_defines”标志表示什么?
EN

Stack Overflow用户
提问于 2018-12-09 20:12:34
回答 1查看 319关注 0票数 0

在使用下面的命令之后,我得到了"binds_to_weak“和"weak_defines”这两个标志。它们的意义是什么?

$ otool -hv

(体系结构armv7):Mach头魔术cputype cpusubtype caps文件类型ncmds sizeofcmds标志MH_MAGIC ARM V7 0x00执行38 4292 NOUNDEFS DYLDLINK TWOLEVEL WEAK_DEFINES BINDS_TO_WEAK PIE

EN

回答 1

Stack Overflow用户

发布于 2019-01-05 01:47:19

MH_WEAK_DEFINES意味着一个可执行文件有一个弱符号。弱符号是一个链接器技巧,用于避免链接到不使用的支持代码中。例如,编译器进行分析,确定应用程序仅为整数,并告诉链接器不要在浮点支持代码中进行链接。从Oracle® Solaris 11.4 Linkers and Libraries Guide (它没有讨论马赫-O):

历史上,弱符号被用来绕过插入,或测试可选功能。然而,经验表明,在现代编程环境中,弱符号是脆弱和不可靠的,因此不鼓励使用它们。

这在John Levine的Linker and Loaders的第6章中有更好的解释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53692175

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档