M1芯片Mac mini配置Qt 5.15编译器,构建跨架构应用
在M1 Mac上为Qt 5.15配置通用二进制(ARM+x86_64)编译环境
1. 安装Rosetta 2
终端执行以下命令完成安装(需输入系统密码):
softwareupdate --install-rosetta
2. 为Qt Creator添加双架构编译器
Qt 5.15默认可能未自动识别x86_64架构的编译工具,手动添加:
- 打开Qt Creator,进入
工具 > 选项 > Kits - 切换到编译器标签页,点击
添加 > Clang > C++:- 编译器路径选择
/usr/bin/clang++ - ABI选择
x86_64-darwin-generic-mach_o-64bit,命名为Clang x86_64
- 编译器路径选择
- 重复上述步骤添加C编译器:
- 路径选
/usr/bin/clang,ABI对应x86_64-darwin-generic-mach_o-64bit,命名为Clang C x86_64
- 路径选
3. 创建通用架构Kit
- 在
Kits标签页点击添加,自定义Kit名称(比如Qt 5.15 Universal) - 设备类型选
Desktop,Qt版本选择已安装的Qt 5.15.x - 编译器部分,C/C++分别选择刚才添加的x86_64版本编译器
- 运行器选择
Local Desktop
4. 配置项目构建参数
针对qmake项目
进入项目的构建步骤 > qmake,在附加参数中添加:
CONFIG+=universal ARCHS="arm64 x86_64" QMAKE_MACOSX_DEPLOYMENT_TARGET=11.0 QMAKE_SDKROOT=/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.sdk
(注:MacOSX13.sdk需匹配你的Xcode 14实际SDK版本,可在Xcode的Preferences > Locations中查看)
针对CMake项目
在CMake配置的附加参数中添加:
-DCMAKE_OSX_ARCHITECTURES="arm64;x86_64" -DCMAKE_OSX_DEPLOYMENT_TARGET=11.0
5. 验证编译结果
编译完成后,终端执行以下命令检查应用架构:
lipo -info /path/to/your/app/binary
输出显示包含arm64和x86_64即为成功。
额外注意事项
- 确保安装的是Qt 5.15.2及以上版本,早期5.15版本对Apple Silicon的适配不完善
- 若遇到SDK路径错误,可通过Xcode打开项目,让Xcode自动修复SDK配置后再回到Qt Creator编译
内容的提问来源于stack exchange,提问作者S0ulM1ke
相关产品推荐
相关产品推荐

