32

我是第三方库的开发人员,我想为 armv7s 重新编译我的库,但我似乎有问题。

我将 xcode 更新为 4.5。我更新了项目和相关目标,使其具有有效的armv7 armv7s.

但是,当我运行fileor时lipo -info,它会列出

  • i386
  • armv7
  • (cputype (12) cpusubtype (11))

没有armv7s。我错过了什么吗?

4

3 回答 3

62

使用 XCode 的 lipo:

xcrun -sdk iphoneos lipo
于 2012-09-25T12:59:53.723 回答
17

显然,(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。

于 2012-09-25T10:06:06.003 回答
1

lipo 没有 armv7s 的定义,这就是为什么您看不到名称而只能看到 cpu 类型和子类型的原因。所以这个胖二进制文件是可以的,只是我们可能不得不等到苹果更新它的工具,如果我们想手动弄乱新架构(例如,现在没有办法手动将 armv7s slim 二进制文件合并到一个胖二进制文件中)。

于 2012-09-24T10:37:43.570 回答