搭载M1芯片的macOS13.2用macOS10.13 SDK编译Chrome的问题咨询
能否实现该编译?
可以实现,但需要针对M1芯片的arm64架构与macOS 10.13 SDK的兼容性限制做针对性配置——macOS 10.13本身不支持arm64架构,默认编译逻辑会适配M1的原生arm64,这与旧SDK的架构支持范围冲突,才会触发"architecture not supported"报错。
解决报错的具体步骤
强制指定编译目标架构为x86_64
在Chromium编译目录的out/Default/args.gn文件中添加以下配置(如果文件不存在则新建):target_cpu = "x86_64" mac_deployment_target = "10.13"这会让编译系统生成适配macOS 10.13的x86_64架构程序,避免与旧SDK的架构支持冲突。
确认SDK路径配置优先级
建议直接在args.gn中指定SDK路径(优先级高于全局的mac_sdk.gni配置),避免全局配置被后续更新覆盖:mac_sdk_path = "/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/MacOSX-SDKs/MacOSX10.13.sdk"同时要确保该路径下确实存在完整的MacOSX10.13.sdk包(部分新版本Xcode默认不包含旧SDK,需手动从Apple开发者渠道下载后放入对应目录)。
适配Xcode新版本的编译限制
若使用Xcode 14及以上版本,编译旧SDK时需添加额外配置以启用兼容模式:enable_legacy_build = true重新生成编译配置并执行编译
先清理旧的编译缓存与配置,再重新生成后编译:gn clean out/Default gn gen out/Default autoninja -C out/Default chrome
注意:编译生成的x86_64版本程序在M1芯片Mac上会通过Rosetta 2转译运行,性能会有一定程度的损耗,但可正常在macOS 10.13及以上系统中运行。
内容的提问来源于stack exchange,提问作者spark
相关产品推荐
相关产品推荐

