什么是CPU体系结构

CPU体系结构是CPU供应商为属于同一系列的CPU产品制定的规范,主要是为了区分不同类型CPU的重要标志。

目前市面上的CPU分类主要分有两大阵营,一类是复杂指令集(CISC)CPU,另一类是精简指令集(RISC)CPU。我们今天要讨论的ARM指令集就属于精简指令集(RISC)CPU。

ARM处理器

ARM处理器是英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器。全称为Advanced RISC Machine。

ARM处理器因其低功耗和尺寸小而闻名,iPhone的处理器全部都基于ARM。
我们经常见到的armv7 | armv7s | arm64都是ARM处理器的指令集。
指令集应用于开发有如下特点:

  • 所有指令集原则上向下兼容。
  • Xcode的模拟器是运行在电脑上的,所以iPhone模拟器并没有使用ARM指令集,而是使用的X86(64为处理器)或者i386(32位处理器)。
  • 通过Xcode打包时,会为支持的所有的指令集编译出对应的指令集代码的数据包,所以工程支持的指令集越多,生成的二进制包就越大。

指令集对应的机型

  • 模拟器32位处理器测试需要i386架构。
  • 模拟器64位处理器测试需要x86_64架构。
  • 真机32位处理器需要armv7,或者armv7s架构。
  • 真机64位处理器需要arm64架构。
arm64e : iPhone 12 | iPhone 12 Mini | iPhone 12 Pro | iPhone 12 Pro Max arm64e : iPhone 11 | iPhone 11 Pro | iPhone 11 Pro Max arm64e : iPhone XS | iphone XS Max | iphoneXR arm64 : iPhone 8 | iPhone 8 Plus | and iPhone X arm64 : iPhone 7 | iPhone 7 Plus | iPad (2018) arm64 : iPhone 6S | iPhone 6S Plus arm64 : iPhone 6 | iPhone 6 Plus arm64 : iPhone 5S armv7s :iPhone5 | iPhone5C | iPad4(iPad with Retina Display) armv7 :iPhone4 | iPhone4S | iPad | iPad2 | iPad3(The New iPad) | iPad mini | iPod Touch 3G | iPod Touch4

相关的Build Setting

Build Settings中搜索Architecture,可以看到如下图的设置项:

  • Architectures
    指定当前Target被编译时支持的指令集的列表,如果指定了多个架构,机会生成多个架构需要的二进制文件。
  • Build Active Architecture Only
    指定是否只编译当前连接设备所支持的指令集。
    默认Debug时为YES,Release时为NO。设置为YES时,编译后只生成当前连接设备所支持的指令集代码,编译速度更快。
  • Excluded Architectures
    指定当前Target被编译时拒绝接纳的指令集列表,编译后最终生成的二进制文件支持的指令集是Architectures减去Excluded Architectures。

其中Architecture的默认值是$(ARCHS_STANDARD),该值具体如下:

请参照Xcode Build Settings Reference
在iPhone上时支持armv7和arm64,模拟器上支持i386和x86_64,Mac上支持x86_64。

相关错误

No architectures to compile for (...)
看到这样的异常,就是架构上的不支持了,我们需要根据括号内的提示排查问题。



作者:一纸苍白
链接:
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

1.《怎么看苹果什么处理器看这里!iPhone的CPU架构和ARM指令集2》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。

2.《怎么看苹果什么处理器看这里!iPhone的CPU架构和ARM指令集2》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。

3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/gl/3163187.html