美文网首页iOS还不太懂的问题
iOS下的CPU设备指令区别

iOS下的CPU设备指令区别

作者: WBearJ | 来源:发表于2017-01-12 20:55 被阅读0次

首先目前iOS设备从iPhone4s到如今的iPhone7,已经是跨过了很大的设备版本号了,CPU也是一步一步的升级,于是到开发者这边的时候我们不仅仅是对iOS版本的兼容,同时也要在开发中对CPU的兼容。

目前在iOS设备上的CPU指令为一下几种:

  • armv6:iPhone,iPhone2,iPhone3G
  • armv7:iPhone3GS,iPhone4,iPhone4S
  • armv7s:iPhone5,iPhone5C
  • arm64:iPhone5S及以上设备

arm的意思其实是指处理器的品牌,ARM是英国Acorn有限公司设计的低功耗成本的RISC微处理器。


但是我们在编译的时候偶尔会报出i386,x86_64的错误,iOS设备都不是这两个的架构,那为什么还会报错呢?
其实是因为:

i386是针对Intel的32为处理器,x86_64是针对x86架构的处理器
模拟器32位的处理器需要i386的架构,64位的处理器需要x86_64的架构。
真机32位需要arm7,或者arm7s架构,64位需要arm64架构。

所以就可以解释为什么有时候人会问在真机上没问题模拟器上会报错了。

分割线


发生i386错误

undefined symbols for architecture i386 这个是错误信息
_OBJC_CLASS_$_TencentOAuth 这个是错误的包
objc-class-ref in DFAppDelegateInitHelper.o 这个是具体文件调用的位置

首先遇到这种错误的解决方法:

  • 查看静态包是否支持i386,具体查看方法

打开终端,使用lipo -info 静态包地址.a 查看

  • 注意: 如果是framework的话直接使用以上命令是会报错的,framework的查看方法是:

cd 到framework内部,之后在使用 lipo -info xxxFramework
或者 lipo -info xxxFramework/xxFramework

然后可以发现这里使用的framework并不支持i386


framework不支持i386

所以这里的问题就可以说明了。

相关文章

  • iOS下的CPU设备指令区别

    首先目前iOS设备从iPhone4s到如今的iPhone7,已经是跨过了很大的设备版本号了,CPU也是一步一步的升...

  • I/O模型

    简介 CPU指令分为普通指令和特权指令,特权指令只有内核能执行,例如对设备的I/O操作就属于特权指令;用户空间只能...

  • 认识NDK编译

    一. Android ABI 不同的 Android 设备使用不同的 CPU,而不同的 CPU 支持不同的指令集。...

  • Linux入门第3天-Linux入门之计算机与操作系统

    硬件:CPU,内存,输入设备,输出设备 软件(程序):指令+数据,算法+数据结构 过程式编程语言 多任务 硬件设备...

  • 04_03_管理及IO重定向,04_04_grep及正则表达式

    运算器,控制器:CPU 存储器:RAM 输入设备/输出设备 程序:指令和数据 控制器:指令 地址总线:内存寻址 数...

  • 关于 Safari back 按钮在 iOS 16 不能按照期望

    设备: iOS: 16.1.1 User-Agent: Mozilla/5.0 (iPhone; CPU iPho...

  • iOS 设备的CPU架构

    模拟器: 4s-5: i386 5s-7 Plus: x86_64 真机(iOS设备): armv6: iPhon...

  • linux学习 Day10-管理及I/O重定向

    计算机的五大部件: 运算器,控制器:CPU存储器:RAM输入设备/输出设备程序:指令和数据 控制器:指令运算器:存...

  • 汇编语言基础知识(四)

    指令的执行过程 指令和数据在内存或者磁盘上,指令和数据没有任何区别,都是二进制信息CPU在工作的时候把有的信息看做...

  • CPU浅谈

    1、指令系统 1.1 x86架构 要讲CPU,就必须先讲一下指令系统。指令系统指的是一个CPU所能够处理的全部指令...

网友评论

    本文标题:iOS下的CPU设备指令区别

    本文链接:https://www.haomeiwen.com/subject/anacbttx.html