ARM指令集

2020-08-14  本文已影响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)

上一篇下一篇

猜你喜欢

热点阅读