armv6, armv7, armv7s的区别

armv6, armv7, armv7s的区别ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,几乎所有手机都是使用它的。armv6,armv7,armv7s是ARMCPU的不同指令集,原则上是向下兼容的。如iPhone4SCPU支持armv7,但它同时兼容armv6,只是使用armv6指令可能无法充分发挥它的特性。同理iPhone5CPU支持armv7s,它虽然也兼容armv7

大家好,又见面了,我是你们的朋友全栈君。

ARM是微处理器行业的一家知名企业,arm处理器以体积小和高性能的优势在嵌入式设备中广泛使用,几乎所有手机都是使用它的。

armv6, armv7, armv7s是ARM CPU的不同指令集,原则上是向下兼容的。如iPhone4S CPU支持armv7, 但它同时兼容armv6,只是使用armv6指令可能无法充分发挥它的特性。同理iPhone5 CPU支持armv7s,它虽然也兼容armv7,但是却无法进行相关的优化。

 

armv6设备:iPhone, iPhone2, iPhone 3G,第一代、第二代iPod Touch

armv7设备:iPhone 3GS, iPhone 4, iPhone 4S

                    iPad , iPad 2,  the new iPad

                    iPod Touch 3G, iPod Touch 4

armv7s设备:iPhone 5

 

只有在目标设备上,才会执行设备对应的指令集。

如果在工程Build Setting的Architectures 中的“Build Active Architecture Only”选择为YES,则即使你设置成armv7 , armv7s同时支持,也只会编译对应指令集的包;若选择NO,则编译器会整合两个指令集到一起,此时的包比较大,但是能在iPhone5上使用armv7s的优化,同时也能适配老的设备。一般都是Debug时“Build Active Architecture Only”选择YES,用当前的架构看代码逻辑是否有问题;而在Release时选择NO,来适配不同的设备。

此外,模拟器并不运行arm代码,软件会被编译成x86可以运行的指令。所以生成静态库时都是会先生成两个.a,一个是i386的用于在模拟器运行,另一个是在真实设备上运行的,然后再用命令将两个.a合并成一个。

 

因此如果一些程序中使用的静态库不支持armv7s,而你的工程支持armv7s时,就会出现“xxxx does not contain a(n) armv7s slice:xxxxx for architecture armv7s”的编译错误,想要解决这个问题,有两个方法:

1.如果是开源的,能够找到源代码,则可以用源代码重新打一个支持armv7s的libaray, 或者在工程中直接使用源代码,而不是静态库。

2.如果不是开源的,要么就坐等第三方库的支持,要么就暂时让你的工程不支持armv7s。

转载自http://www.cnblogs.com/cywin888/p/3229505.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/149442.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 有序的Map集合_map集合特点

    有序的Map集合_map集合特点我们通常使用的Map集合是HashMap,在大多数情况下HashMap可以满足我们的要求,但是HashMap有一个缺点:HashMap是无序的,即其迭代顺序与其key或value的大小无关。而在某些情况下,如果我们需要Map集合里的元素有序,那么HashMap是不能满足我们的要求的。那么有没有有序的Map集合呢?有,Java提供了两种有序的Map集合:LinkedHashMap和TreeM…

    2025年12月4日
    2
  • Gmapping建图

    Gmapping建图Gmapping实战前文中,我们总共做了以下几件事:完成了基于ros小车框架安装。完成了小车下位机的安装。完成了上位机安装,并连接到ros系统,可以发布odom话题,使用键盘控制gmapping数据集测试。激光雷达选型与安装。接下来我们来完成使用gmapping的建图与导航工作。首先下载安装激光雷达的驱动程序,当然只针对我买的这一款,不是做广告,这家的技术售后简直就是垃圾,唯一…

    2022年6月25日
    36
  • 95后和05后到底差距有多大?(漫画)

    95后和05后到底差距有多大? 原文始发于微信公众号(全栈程序员社区):95后和05后到底差距有多大?(漫画)

    2021年6月21日
    102
  • UART接口介绍_uart接口引脚定义

    UART接口介绍_uart接口引脚定义UART接口介绍

    2025年11月18日
    3
  • supervisor常见报错[通俗易懂]

    supervisor常见报错[通俗易懂]supervisor常见报错

    2022年4月24日
    41
  • Ubuntu16.04编译安装BusyBox「建议收藏」

    Ubuntu16.04编译安装BusyBox「建议收藏」简述Ubuntu16.04LTS编译安装BusyBox,出现问题及解决方案。下载源码下载BusyBox源码选择一个扩展名为.tar.bz2文件下载本例中使用busybox-1.27.2.tar.bz2解压在源码所在位置右键在此打开终端,输入解压命令,文件名与自己所下载版本文件对应tar-jxvfbusybox-1.27.2.tar.bz2解压后当前文件夹生成一个文件夹,进入到解压后

    2022年7月25日
    37

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号