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

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

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

据我了解,我需要将要运行的体系结构的马赫标头。但是,该应用程序可以在64位设备上正常运行。

iOS开发中的胖头和马赫头之间有什么区别?此库可安全用于64位应用程序吗?

最佳答案

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

如果只看到x86_64,请尝试otool -hv -arch all myLibrary.a
FWIW,一种更简单的方法是执行lipo -info myLibrary.a。如果您看到所需的 slice ,那么您应该会很好,只要库本身对该 slice 正常运行即可。

关于ios - 马赫 header 和胖 header 有什么区别?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27354315/

10-11 14:01