mach头和fat header之间有什么区别?

时间:2014-12-08 08:48:05

标签: ios objective-c xcode static-libraries static-linking

我有一个静态库提供给我,我需要在应用程序中使用。我被告知它支持ARM64。

当我使用otool -hV mylibrary.a列出mach标题时,我只获得x86_64的CPU类型。

当我使用otool -fv mylibrary-a列出胖头时,我得到CPU类型I386,x86_64,ARM,ARMv7S。 ARM64。

据我所知,我需要为我要运行的架构提供头文件头。但是,该应用程序在64位设备上正常工作。

iOS开发中的fat头和mach头之间有什么区别?这个库可以安全地用于64位应用程序吗?

1 个答案:

答案 0 :(得分:1)

mach header和universal header提供类似的信息。他们识别诸如cputype和cpusubtype之类的东西。通用标头还指示每个体系结构的文件偏移/大小。我相信通用标题是从马赫标题中获取信息,但我可能很容易就错了。

如果您只看到x86_64,请尝试otool -hv -arch all myLibrary.a

FWIW,更简单的方法是lipo -info myLibrary.a。如果您看到所需的切片,那么您应该很高兴,只要库本身对该切片正常工作。