M1芯片Mac的Xcode能否构建面向Intel x86_64架构的目标程序
针对M1芯片Mac构建x86_64架构dylib库的解决方案
Xcode构建设置修正
架构选项为空是默认配置隐藏了自定义架构入口,按以下步骤调整即可:
- 打开对应项目的Build Settings页面,定位到
Architectures配置项 - 点击默认的
Standard Architectures (arm64)下拉选项,选择Other,手动添加需要的x86_64架构;如果需要同时兼容M1和Intel设备,可以同时添加arm64和x86_64两个架构 - 找到
Build Active Architecture Only配置项,将Debug、Release模式的取值都修改为No - 检查
Excluded Architectures配置项,确认没有设置排除x86_64架构的规则 - 重新执行编译即可得到符合架构要求的dylib文件
命令行编译方案
如果无需使用Xcode图形界面,直接在编译参数中指定目标架构即可:
仅编译x86_64单架构dylib示例:
clang -dynamiclib -arch x86_64 你的源码文件.c -o 输出库文件.dylib
编译同时支持x86_64、arm64的通用二进制dylib示例:clang -dynamiclib -arch x86_64 -arch arm64 你的源码文件.c -o 输出库文件.dylib
结果验证
编译完成后执行命令lipo -info 你的库文件路径.dylib,如果输出中包含x86_64则说明符合要求,不会再出现incompatible architecture报错。
内容的提问来源于stack exchange,提问作者Filippo Ansalone
相关产品推荐
相关产品推荐

