Ios 使用标准体系结构(armv7、armv7s)编译时会发生什么?

Ios 使用标准体系结构(armv7、armv7s)编译时会发生什么?,ios,xcode5,Ios,Xcode5,我有一个SDK,我正在尝试编译,我想知道当我在“架构”下选择标准架构(armv7,armv7s)选项时会发生什么 据我所知,armv7指令集也可以在支持armv7的设备上运行,但反过来就不行了。那么,当我使用这个选项编译时,编译器是输出一个二进制文件,其中包含两个SDK,每个SDK使用不同的指令集,还是只输出一个带有armv7的指令集 我很困惑,也不确定我是否正确思考了这个问题。是的,如果同时指定armv7和armv7s,它将构建一个“胖二进制文件”,其中包含两组目标代码,一组针对armv7,另

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

据我所知,armv7指令集也可以在支持armv7的设备上运行,但反过来就不行了。那么,当我使用这个选项编译时,编译器是输出一个二进制文件,其中包含两个SDK,每个SDK使用不同的指令集,还是只输出一个带有armv7的指令集


我很困惑,也不确定我是否正确思考了这个问题。

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

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


一般来说,除非你有特定的理由不这样做,否则坚持“标准架构”,因为这为当前受支持的iOS设备提供了最佳支持。

您应该阅读,因此我从仅编译armv7中获得的唯一好处是我的二进制文件会更小,但在armv7s处理器上运行更慢?这基本上是正确的。二进制文件将更小。它在armv7s处理器上的运行速度可能比为armv7s优化的相同二进制文件要慢。速度慢多少取决于代码的性质以及它对armv7s优化的帮助程度。