美文网首页
iOS CPU架构指令集

iOS CPU架构指令集

作者: Sunxxxxx丶 | 来源:发表于2018-05-04 11:54 被阅读257次

    一.是什么?

    CPU架构是CPU厂商给属于同一系列的CPU产品定的一个规范,主要目的是为了区分不同类型CPU的重要标示。

    二.种类

    ARM公司: arm架构
    intel公司: intelx86系列架构
    AMD公司: amdx86系列架构

    电脑: 一般是x86 / x64
    手机: 一般是arm (微处理器,功耗低,体积小)

    32位: intel的x86系列 / ARM的armv7 armv7s系列
    64位: intel的x64系列 / ARM的arm64系列

    三.iOS手机支持类型

    arm64:iPhone5S| iPad Air| iPad mini2(iPad mini with Retina Display)
    armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display)
    armv7:iPhone3GS|iPhone4|iPhone4S|iPad|iPad2|iPad3(The New iPad)|iPad mini|iPod Touch 3G|iPod Touch4
    armv6 设备: iPhone, iPhone2, iPhone3G, 第一代、第二代 iPod Touch(一般不需要去支持)

    四.查看静态库/动态库的CPU指令集

    进入动态库文件夹下.使用lipo -info命令

    image.png

    动态库和静态库都是一样的命令.

    只是动态库是查看GXHome.framework文件夹下的GXHome可执行文件

    静态库是查看GXHome.a文件

    五.查看静态库/动态库的

    image.png

    查看该静态库/动态库的符号表 (所谓符号.即函数/全局变量.)

    六.常识

    X86-64简称x64. 都是64位的.

    X86-32简称x86,是一个系列(如80186,80286,80386) .都是32位的.

    • i386: 即intel80386.是intel公司的一款x86系列CPU.发布于1985年10月17日.将PC从16位时代带入了32位时代.

    七.解决问题

    问题一.undefined symbols for architecture x86_64

    image.png

    没有定义x86_64指令集下的GXPhoneTouchEventVCTest符号表.

    这个时候就可以进行一下步骤去排查错误.

    步骤1.使用lipo -info 命令去查看这个动态库/静态库是否包含了x86_64的指令集.

    如果没有.就在Xcode -> Build Settings -> Architectures -> 里查看是否没加上x86_64这个指令集

    image.png
    步骤2.使用nm命令查看这个动态库/静态库里是否包含GXPhoneTouchEventVCTest这个符号

    如果没有.就在工程里找到GXPhoneTouchEventVCTest这个类.

    在Xcode的右边栏查看target membership是否勾选.

    image.png
    步骤3.查看在该类的.m里是否实现了这个类的@implementation.
    步骤4.查看是否embedded和linked这个动态库/静态库
    image.png

    相关文章

      网友评论

          本文标题:iOS CPU架构指令集

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