美文网首页
ARM指令集

ARM指令集

作者: 那月无痕 | 来源:发表于2020-08-14 15:09 被阅读0次

    一、几个重要概念

    1、ARM处理器

    ARM处理器:特点是体积小、低功耗、低成本、高性能,几乎所有手机处理器基于ARM,在嵌入式系统中应用广泛。

    2、ARM处理器指令集

    armv6 | armv7 | armv7s | armv64都是ARM处理器的指令集,这些指令集都是向下兼容的,例如armv7指令集兼容armv6,只是使用armv6的时候无法发挥其性能,无法使用armv7的新特性,从而会导致程序执行效率没有那么高。

    iOS模拟器会遇到i386和x86_64,模拟器没有arm指令集。i386是针对Intel通用微处理器32架构,x86_64是针对x86架构的64位处理器。

    3、目前iOS移动设备指令集

    指令集预览

    armv6--armv7--armv7s--arm64

    三、制作静态库.a是指令集选择

    现在回归到正题,如何制作一个“没有问题”的.a静态库,通过以上信息了解到,当我们做App的时候,为了追求高效率,并且减小包的大小,Build Active Architecture Only设置成YES,Architectures按Xcode默认配置就可以,因为arm64向前兼容。但制作.a静态库就不同了,因为要保证兼容性,包括不同iOS设备以及模拟器运行不出错,所以结合当前行业情况,要做到最大的兼容性。

    ValidArchitectures设置为:armv7|armv7s|arm64|i386|x86_64

    Architectures设置不变(或根据你需要):  armv7|arm64

    然后分别选择iOS设备和模拟器进行编译,最后找到相关的.a进行合包,使用lipo -create 真机库.a的路径 模拟器库.a的的路径 -output 合成库的名字.a(详情可以参考http://blog.csdn.net/lizhongfu2013/article/details/12648633)

    相关文章

      网友评论

          本文标题:ARM指令集

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