首页 文章

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

提问于
浏览
1

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

当我使用 otool -hV mylibrary.a 列出马赫 Headers 时,我只获得 x86_64 的CPU类型 .

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

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

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

1 回答

  • 1

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

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

    FWIW,更简单的方法是做 lipo -info myLibrary.a . 如果您看到所需的切片,那么您应该很高兴,只要库本身适用于该切片 .

相关问题