使用Standard Architectures(armv7,armv7s)编译时会发生什么?

时间:2014-02-05 20:32:04

标签: ios xcode5

我有一个我正在尝试编译的SDK,我想知道当我选择“架构”下的标准架构(armv7,armv7s)选项时会发生什么?

据我所知,armv7指令集可以在支持armv7s的设备上运行,但不能反过来。因此,当我使用此选项进行编译时,编译器是否输出带有两个SDK的二进制文件,每个SDK使用不同的指令集或只使用一个带有armv7的指令集?

我很困惑,不确定我是否正确地考虑了这一点。

1 个答案:

答案 0 :(得分:1)

是的,如果同时指定armv7和armv7s,它会构建一个包含两组目标代码的“胖二进制”,一组用于armv7,另一组用于armv7。当应用程序安装在手机上时,安装程​​序会为安装它的设备使用正确的目标代码。

可以只指定“armv7”,并且你是对的,生成的目标代码将在armv7和armv7s上运行。但是,它在armv7s上运行速度比包含两组代码的二进制文件慢。

一般情况下,除非您有特定原因不这样做,否则请坚持使用“标准架构”,因为这样可以为当前支持的iOS设备提供最佳支持。