iOS CPU架构(ARM指令集)
http://blog.csdn.net/yanglei3kyou/article/details/48825917
该选项起作用的条件有两个,必须同时满足才会起作用:
1. 其值设置为YES
2. Xcode成功连接调试设备
假定我们将Build Active Architecture Only值设置为YES,同时Xcode连接上手机 iPhone 5s(匹配指令集arm64)
1. 第一种情况
Architectures: armv7, armv7s, arm64
ValidArchitectures: armv6, armv7s, arm64
生成二进制包支持的指令集: arm64
2. 第二种情况
Architectures: armv6, armv7, armv7s
Valid Architectures: armv6, armv7s, arm64
生成二进制包支持的指令集: armv7s
3. 第三种情况
Architectures: armv6, armv7
Valid Architectures: armv6, armv7s, arm64
生成二进制包支持的指令集: armv7
4. 第四种情况
Architectures: armv6
Valid Architectures: armv6, armv7s, arm64
生成二进制包支持的指令集: 虽然编译成功了,但是并没有任何目标生成, 因为从XCode4.5开始,就不再支持armv6指令集,所以列表中写了也是白写。
5. 第五种情况
Architectures: armv7, armv7s, arm64
Valid Architectures: armv7,armv7s
生成二进制包支持的指令集: 编译出错信息
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv7 armv7s)
可以看出:当Build Active Architecture Only起作用时:
连接的手机指令集匹配是由高到低(arm64 > armv7s > armv7)依次匹配的。
如连接手机为iPhone 5s,其默认指令集为arm64,若Architectures列表为armv7, armv7s,则会选取armv7s指令集为目标指令集,如果此时Valid Architectures列表中包含该指令集,则成功生成的二进制包只支持armv7s指令集,若alid Architectures列表不包含此指令集,则编译将会出错:
No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=armv7s, VALID_ARCHS=armv7 arm64)
同样的,若Architectures列表为armv7,则会选取armv7作为目标指令集,若Valid Architectures列表中包含了armv7指令集,则能够成功生成二进制包,其支持的指令集只有armv7,若Valid Architectures列表中不包含armv7,则编译失败。
上一篇: docker的常用命令
推荐阅读
-
ARM全新CPU架构Cortex-A77发布:性能提升20% 麒麟还能用吗?
-
20年“炼出”国内首个自主CPU指令集架构 龙芯凭什么?
-
Zen/苹果A系之父谈转投第三大CPU架构RISC-V:没有x86/ARM那么多垃圾
-
ARM体系架构—ARMv7-A指令集:协处理器指令
-
2023年淘汰32位 ARM将全面转向64位CPU架构
-
NVIDIA发布自主CPU处理器!ARM架构、打造2千亿亿次超算
-
一文看懂年度旗舰骁龙8:首发新十年指令集Armv9、CPU/GPU架构大换代
-
英伟达发布“空气CPU”:ARM架构 性能超X86十倍
-
掌握自主指令集架构CPU 龙芯中科科创板IPO成功过会
-
ARM下代处理器架构将支持BFloat16指令集 AI性能暴增数倍