编译库为armv7s - cputype(12)和cpusubtype(11)

问题描述:

我是第三方库的开发人员,我想重新编译我的库为armv7s,但我似乎有问题。编译库为armv7s - cputype(12)和cpusubtype(11)

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

然而,当我运行filelipo -info,它会列出

  • I386
  • 的ARMv7
  • (CPUTYPE(12)cpusubtype(11))

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

+2

我最好的猜测是,脂不知道armv7s。也许path/to/xcode/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/lipo会更好吗? –

使用Xcode的脂:

xcrun -sdk iphoneos lipo 
+1

看起来应该是这样的:xcrun -sdk iphoneos lipo -info myLibrary.a –

+0

谢谢!这为我做了诡计。 “正常”脂肪识别armv7s(cputype(12)cpusubtype(11))。所以如果你试图用“-this armv7s”来运行这个lipo,就会抛出一个错误。 – runamok

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

显然,(cputype (12) cpusubtype (11))是armv7s的另一个命名法。

您可以参考更多在这里:http://www.galloway.me.uk/2012/09/hacking-up-an-armv7s-library/

上述博客中还描述了制造一些图书馆armv7s建立兼容的方法。上面的描述接近文章结尾处,他解释了从file命令的输出。

引述其中的一部分:

内部此标头(称为马赫-O报头)是用于CPU 类型和CPU亚型的字段。 ARM是CPU类型12,ARM v7是CPU亚型9 和armv7s是CPU亚型11