当前位置:首页 » 编程软件 » 苹果m1编译x86

苹果m1编译x86

发布时间: 2023-01-01 02:59:38

⑴ 苹果推出首款自研芯片M1,都应用在了哪些设备上其销量如何

苹果推出首款自研芯片M1,应用在处理器 、英特尔平台, 图像处理等设备上,因为还没有正式开售,所以目前没有销量。

一、苹果CEO库克就带来了万众期待的“One More Thing”——自研的电脑处理器 M1。据悉这颗芯片采用5纳米制程,封装了160亿个晶体管,其数量为苹果所有芯片之最,还拥有8核心CPU(4大核+4小核),8核心GPU,16核的神经网络引擎,最高达16GB统一内存。苹果表示,M1的CPU性能和GPU性能比之前的笔记本芯片都要快,MacBook Air搭载M1芯片后,中央处理器速度将最高提升至3.5 倍,图形处理器速度可最高提升至5倍,电池续航最长达18小时,比之前多出6小时。 可见在全新芯片的支撑下,Mac系列电脑将会大幅度地提升性能,突破当前算力的瓶颈,带来更强大的能效。同时,苹果发布了三款搭载M1芯片的新品,分别是轻型笔记本MacBook Air(7999元起)、专业版本的13寸MacBook Pro(9999元起)以及Mac mini(5299元起),将于下周正式开售。

二、处理器。作为自研的最强芯片,M1芯片自然集结了目前苹果最强的技术,采用5nm制程工艺,高达160亿个晶体管数量,从CPU、GPU、Nerual Engine到Apple T2芯片,一个由苹果设计的全新SoC呈现在我们眼前。CPU部分采用了4+4大小核设计,苹果对比了最新的PC处理器,在10W功耗下性能达到了“友商”的两倍,在同性能下功耗仅有英特尔芯片的四分之一。GPU方面同样也是8核设计,功耗在10W水平线时同样具备“友商”两倍的性能,同性能时功耗为三分之一。另外M1还具备16核Neural Engine,每秒可进行11万次运算,机器学习能力也有了大幅度提高。

另外SSD性能方面也提升到了原先的两倍,相比在大型应用的启动速度上会有比较明显的提升,这半年来吐槽MacBook Air SSD性能不够的人你们赢了。不过最令人兴奋的可能还是在续航方面的提升,搭载M1芯片的MacBook Air在网页浏览方面可以达到15小时续航,播放视频可以达到18小时,整体续航最多提升6小时以上,是有史以来续航最好的MacBook Air。

⑵ 解决M1 Mac 编译失败

M1 Mac pro Xcode编译工程报错 libPods-ProjectName.a' is missing one or more architectures required by this target: x86_64

For me opening Xcode in Rosetta mode was what solved the problem. You may have to remove DerivedData also at: /Users/<username>/Library/Developer/Xcode/DerivedData

You can install Rosetta by running: softwareupdate --install-rosetta

Also it seems OS prompts you to install if trying to open an app that requires Rosetta: https://support.apple.com/en-us/HT211861

https://stackoverflow.com/a/69294780

M1 Mac pro Xcode改为 Rosetta,编译Playground报错
Failed to launch process. Failed to attach to stub for playground execution: error: debugserver is x86_64 binary running in translation, attached failed..

It seems that you should turn off running with Rosetta for Xcode.

https://stackoverflow.com/questions/69829731/xcode-playground-failed-to-launch

⑶ M1 设备的 Xcode 编译问题深究

在Apple发布M1芯片之前,一直使用Intel的芯片,没有出现什么问题。发布M1芯片后,由于两者架构的不同(M1是arm64架构,Intel是x86_64的架构),导致很多软件运行出现了问题。我们在M1机型中使用Xcode编译模拟器时,可能会碰到如下报错:



这些报错,都是是由于项目中存在.a或.framework静态库导致的。以前,我们创建静态库时,会分别打包出一份针对真机(arm64)和模拟器的(x86_64),然后将这两份合并成一个包后引入项目中进行使用。在Intel机型上,真机上使用arm64指令,模拟器(x86_64)中使用x86_64指令,所以不存在问题。但是在M1机型上,模拟器是以arm64运行的,显然再以x86_64运行就会出现问题。

对于这类架构报错问题,网上的资料一般会告诉你两个解决方案:
以Rosetta模式运行Xcode。
修改Build Settings -> Excluded Architectures选项,添加Any iOS Simulator SDK选项,并设置值为arm64。图示如下:

这两种方案都能解决编译问题,但是也都存在问题。

以Rosetta模式运行是M1机器上x86软件无法运行的解决方案,它会将x86指令转译成ARM指令运行,这种转译显然是存在性能损耗的,损耗大概在20%~30%,不到万不得已,不推荐使用这种方案。
Excluded Architectures方案说明

修改Excluded Architectures选项也有它的问题。字面意思是排除架构的意思,我们设置在模拟器中排除arm64就能解决模拟器无法编译arm64的问题。
这样的设置能生效会让人有点费解,我们知道,在intel机型上,模拟器本来就是以x86方式运行的,排除arm64毫无影响。但是在M1机型上,模拟器是以arm64方式运行的,排除了arm64反而能跑,这不是把我的智商摁在地上摩擦么?,但是苹果就是这样干的,当在M1机型上,排除了模拟器的arm64架构后,模拟器还是会以arm64的方式运行,但是模拟器中的app是以x86的方式运行的,对苹果的这个骚操作我们不得不服。图示如下:

有时候在Excluded Architectures选项中排除了模拟器的arm64指令,依然无法编译通过,那么一般是项目设置和cocoapods的设置不一致导致,设置为一致后一般可以解决问题。可以通过在Podfile中添加如下内容来解决:

通过上述内容,我们知道了问题的由来,它是由于项目中存在.a或.framework,它们提供的指令集不完整导致的。Apple对于这类问题,也提供了解决方案,请由我细细道来。

以Xcode13为例,在我们创建静态库时,选择真机编译出来的包只包含arm64指令,选择模拟器编译出来的会同时包含arm64和x86_64指令。我看一些网上的教程,教别人将模拟器部分的arm64移除,其实大可不必。因为要支持M1机器正常跑模拟器,模拟器必须同时包含arm64和x86_64指令。

2019年的WWDC,apple提供了一种新的框架封装格式XCFramework。简单理解就是以前使用lipo合并不同指令集的包,现在则使用新的指令合并成XCFramework格式

打包成framework,格式如下:

打包成XCFramework后,格式如下:

从上述可以看出,XCFramework就是把两个不同指令集的framework放入了同一个文件夹(.xcframework),并生成了一个配置文件Info.plist。这样生成的XCFramework就可以完美的解决M1机器无法编译模拟器的问题。
XCFramework的创建指令也很简单:

以现在的情况,很多第三方框架,并没有使用XCFramework,而项目中只要有一个框架没有支持模拟器的arm64指令,那么在M1机器上,模拟器只能以Rosetta模式运行应用,对这一块的普遍支持估计要等M1普及以后了。

苹果换芯,成了开发者们的噩梦?
armv6、armv7、armv7s、armv8、armv64及其i386、x86_64区别
细说iOS静态库和动态库
关于Xcode11的XCFrameworks框架

热点内容
rmijava 发布:2025-09-18 08:38:26 浏览:18
sql软件和服务器怎么连接 发布:2025-09-18 08:27:47 浏览:937
手机java模拟器 发布:2025-09-18 07:13:29 浏览:416
linux线程的栈大小 发布:2025-09-18 07:09:42 浏览:633
废旧电脑做linux服务器 发布:2025-09-18 07:06:50 浏览:263
终端配置怎么写 发布:2025-09-18 06:44:42 浏览:804
ftp手机登陆 发布:2025-09-18 06:43:04 浏览:767
emc存储800电话 发布:2025-09-18 06:32:49 浏览:964
c语言编程与设计 发布:2025-09-18 06:09:15 浏览:724
2016年预算法 发布:2025-09-18 06:07:05 浏览:625