当我跑步时 otool -favh some/library.so 有以下字段:

Mach header
      magic cputype cpusubtype  caps    filetype ncmds sizeofcmds      flags
MH_MAGIC_64  X86_64        ALL LIB64     EXECUTE    12       1552   NOUNDEFS DYLDLINK TWOLEVEL
  • “帽子”列的含义是什么?
  • 上限列会导致链接故障吗?
有帮助吗?

解决方案

好问题。看来,在任何地方都没有记录。不过,由于开源,答案在OTools的源代码中可用,因此,如果需要更多信息,您可以在那里查看。

该字段表示CPU的功能位(即 cpusubtype & CPU_SUBTYPE_MASK)。因此,我想它实际上是CPUsubType字段的子集,我想使该信息更容易获得。这是Otools程序员放入的东西,而不是Mach-O标头的一部分。


上限列会导致链接故障吗?

不确定我是否在这里得到您的问题,链接到底是什么?对于不同的处理器(因此可能使用不同的“盖帽”字段)编辑了两个库,并试图将它们链接在一起可能是一个问题。不过,在这方面,我会更关心“ cputype”字段。如果您将X86代码与ARM代码链接在一起(我猜是“ CAPS”字段更多),它可能会给您一个提示。

通常,除非您的特定情况要求,否则我不会过多地专注于任何文档中没有人要提及的领域。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top