我是第三方库的开发人员,我想为 armv7s 重新编译我的库,但我似乎有问题。
我将 xcode 更新为 4.5。我更新了项目和相关目标,使其具有有效的armv7 armv7s
.
但是,当我运行file
or时lipo -info
,它会列出
- i386
- armv7
- (cputype (12) cpusubtype (11))
没有armv7s。我错过了什么吗?
使用 XCode 的 lipo:
xcrun -sdk iphoneos lipo
显然,(cputype (12) cpusubtype (11))
是 armv7s 的另一种命名法。
你可以在这里参考更多:http ://www.galloway.me.uk/2012/09/hacking-up-an-armv7s-library/
上面的博客还介绍了一种使某些库 armv7s 构建兼容的方法。上面的描述接近文章的结尾,他解释了file
命令的输出。
引用其中的一部分:
在此标头(称为 Mach-O 标头)内是 CPU 类型和 CPU 子类型的字段。ARM 是 CPU 类型 12,armv7 是 CPU 子类型 9,armv7s 是 CPU 子类型 11。
lipo 没有 armv7s 的定义,这就是为什么您看不到名称而只能看到 cpu 类型和子类型的原因。所以这个胖二进制文件是可以的,只是我们可能不得不等到苹果更新它的工具,如果我们想手动弄乱新架构(例如,现在没有办法手动将 armv7s slim 二进制文件合并到一个胖二进制文件中)。