b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

处理器适配体系结构(x86_64,armv7,armv7s,arm64,i386)

电脑杂谈  发布时间:2020-06-22 09:11:47  来源:网络整理

arm 64位处理器_从51到arm—32位嵌入式系统入门_32位arm嵌入式系统开发技术-流程

32位(即Mac处理器的指令集): i386

64位模拟器(即Mac处理器的指令集): x86_64

32位真实机器(即ARM处理器的指令集): armv7,armv7s

64位真实机器(即ARM处理器指令集): arm64

在项目开发中,可以使用第三方提供的静态库.a文件或框架文件. 如果静态库提供程序技术还不成熟,则使用它时会出现问题,例如:

要解决上述问题,您需要了解有关Apple移动设备处理器指令集的一些详细信息.

ARM处理器具有体积小,功耗低,成本低和性能高的特点,因此几乎所有的手机处理器都基于ARM,并广泛用于嵌入式系统中.

armv6,armv7,armv7s和arm64都是ARM处理器的指令集. 这些指令集是向后兼容的. 例如,armv7指令集与armv6兼容,但是使用armv6时,它无法发挥性能,因此无法使用armv7. 新功能将导致程序执行效率降低.

i386和x86_64是Mac处理器的指令集. i386针对Intel通用微处理器32架构. x86_64是用于x86体系结构的64位处理器. 因此,在使用iOS模拟器时,您会遇到i386,x86_64,并且iOS模拟器没有设置arm指令.

当前的iOS移动设备指令集

从51到arm—32位嵌入式系统入门_32位arm嵌入式系统开发技术-流程_arm 64位处理器

arm64: iPhone5S,iPad Air,iPad mini2(带有Retina显示屏的iPad mini)

armv7s: iPhone5,iPhone5C,iPad4(带有Retina显示屏的iPad)

armv7: iPhone3GS,iPhone4,iPhone4S,iPad,iPad2,iPad3(新iPad),iPad mini,iPod Touch 3G,iPod Touch4

armv6: iPhone,iPhone2,iPhone3G,第一代,第二代iPod Touch(通常不需要支持)

Xcode中的指令集相关选项(在“构建设置”中)

(1)架构

以空格分隔的标识符列表. 指定二进制文件所针对的体系结构(ABI,处理器模型). 如果此构建设置指定了多个体系结构,则生成的二进制文件可能包含每个指定体系结构的目标代码.

指定可以将项目编译为哪种指令集类型,并且它支持的指令集越多,将编译包含多个指令集代码的数据集越多,则生成的相应二进制包也越大,即,ipa包装会变大.

(2)有效的体系结构

以空格分隔的标识符列表. 指定可以为其构建二进制文件的体系结构. 在构建过程中,此列表与ARCHS构建设置的值相交. 结果列表指定了二进制文件可以运行的体系结构. 如果生成的体系结构列表为空,则目标不生成二进制文件.

32位arm嵌入式系统开发技术-流程_从51到arm—32位嵌入式系统入门_arm 64位处理器

限制可能支持的指令集范围,即最终将由这些类型生成Xcode编译的二进制程序包的类型,以及哪些架构和有效架构将编译哪些指令集程序包(因此,这不能为空),确定交点.

例如,有效架构支持的arm指令集的版本是: armv7,armv7s,arm64,相应架构所支持的arm指令集的版本是: armv7s,那么Xcode将仅生成二进制包的armv7s指令集.

另一个示例: 将Architectures支持的arm指令集设置为: armv7,armv7s,而Valid Architectures支持的相应指令集为: armv7s,arm64,此时,XCode支持的唯一生成二进制代码的指令集软件包是armv7s.

在Xcode的“有效体系结构”设置中,默认值为“标准体系结构”(armv7,arm64),如果要更改它,则可以在其他代码中进行修改.

特别提示:

使用标准体系结构(包括64位)(armv7,arm64)参数,该程序包包含32位和64位代码. 在iPhone5s(iPhone5s的CPU是64位)下,它将首先运行. iPhone的其余部分为64位代码包(iPhone的其余部分为32位arm 64位处理器,iPhone5c也是32位),只能运行32位包,但是该代码包包含两种体系结构,只能在ios6,ios7系统.

也就是说,这种包装方法几乎对手机没有要求,但对系统(即ios6或更高)有要求.

使用标准体系结构(armv7,armv7s)参数,该软件包仅包含32位代码,iPhone5s CPU是64位,但与32位代码兼容,也就是说,它可以运行32位码. 但这会降低iPhone5s的性能. 其余的iPhone的32位代码包都没有问题,而32位代码包对系统几乎没有限制.

因此,要发挥iPhone5s的64位性能,必须包括64位软件包,然后最低系统要求是ios6. 如果要与ios5及更低版本的系统兼容,则只能播放32位程序包,该系统可以通用,但会失去iPhone5s的性能.

(3)仅构建活动架构

指定是否仅编译当前连接设备支持的指令集

从51到arm—32位嵌入式系统入门_arm 64位处理器_32位arm嵌入式系统开发技术-流程

当值设置为YES时,此属性设置为YES,这是为了在调试时加快编译速度,它仅编译当前体系结构版本,而当设置为NO时,它将编译所有版本. 编译版本向后兼容,并且所连接设备的指令集匹配从高到低匹配(arm64> armv7s> armv7). 例如,如果将此值设置为YES,则使用iphone4编译的版本为armv7,iphone5也可以运行arm 64位处理器,但是armv6的设备无法运行. 因此,您可以在调试时选择设置为“是”,而在发布时选择为“ NO”以适应不同的设备.

(a)

架构: armv7,armv7s,arm64

有效的体系结构: armv6,armv7s,arm64

生成二进制软件包支持的指令集: arm64

(b)

架构: armv6,armv7,armv7s

有效的体系结构: armv6,armv7s,arm64

生成二进制程序包支持的指令集: armv7s

(c)

架构: armv7,armv7s,arm64

32位arm嵌入式系统开发技术-流程_从51到arm—32位嵌入式系统入门_arm 64位处理器

有效的体系结构: armv7,armv7s

这种情况是错误的,因为指令集中不允许使用arm64.

注意: 如果需要ipa安装软件包的大小,则可以减少安装软件包中的指令集数量,因此可以尽可能减小软件包的大小. 当然,这会导致某些设备的性能下降. 当然,在普通应用中几乎不会感觉到这一点,至少不会威胁到用户的身体检查.

使用场景,当用户制作一个静态库.a文件或框架文件时,选择指令集的处理方式

如何通过上述信息使“静态”库或框架成为静态库或框架,当我们制作App时,为了追求高效率并减小程序包的大小,已设置仅构建活动架构如果为YES,则可以根据Xcode默认配置架构,因为arm64是向前兼容的. 但是制作一个静态库或框架是不同的,因为要确保兼容性,包括在不同的iOS设备和模拟器上运行而不会出现错误,因此要结合当前的行业状况,以实现最大的兼容性.

正确的设置指令集类型如下:

有效架构设置为: armv7,armv7s,arm64,i386,x86_64

架构设置保持不变(或根据您的需要): armv7,arm64

然后选择要编译的iOS设备和模拟器,最后在包框架中找到相关的.a文件或相应文件.

在终端中使用以下命令: lipo -create real machine library. 库的路径. a输出的合成库名称的路径. 或脂质-在真实机器库框架中创建文件的路径模拟器在库框架中文件的路径-输出综合库的名称;或者这样就形成了一个通用的静态库.a或框架.

当然,您也可以检查静态库.a或框架支持的指令集.

在终端中使用命令: lips-info静态库.a文件;或lips-info框架中的文件.


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-254350-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 世祖苻坚
        世祖苻坚

        烊烊加油

      • 杨玉环
        杨玉环

        美国对英国的胜利不就是这样的吗

      热点图片
      拼命载入中...