MacOS Monterey编译quabs遇xcrun架构不兼容错误求助
解决M1 Mac编译quabs时xcrun架构不兼容问题
问题背景
在M1芯片的MacBook Air上编译quabs QBF求解器,执行make时出现以下架构不兼容错误:
xcrun: error: unable to load libxcrun (dlopen(/Applications/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib, 0x0005): tried: '/Applications/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64e'))).
重装Command Line Tools后问题依旧,且/Library/Developer下仅存在Xcode目录,无CommandLineTools目录。
解决步骤
1. 确认Xcode为Apple Silicon适配版本
当前Xcode的libxcrun.dylib是x86_64架构,与M1的arm64e不兼容,需确保安装的是适配Apple Silicon的Xcode版本:
- 打开App Store,搜索Xcode,重新下载安装(若之前安装的是Intel版本,会自动替换为Apple Silicon版本)。
- 验证架构:执行以下命令,输出应为
arm64或包含arm64的结果:lipo -info /Applications/Xcode.app/Contents/Developer/usr/lib/libxcrun.dylib
2. 指定Xcode内置的Command Line Tools路径
由于Xcode已内置Command Line Tools,无需单独安装,直接指定路径即可:
sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
验证路径是否生效:
xcode-select -p
输出应为/Applications/Xcode.app/Contents/Developer。
3. 清理编译缓存并重新编译
回到quabs的build目录,清理之前生成的缓存文件,重新执行编译:
cd /path/to/quabs/build rm -rf * cmake -DCMAKE_BUILD_TYPE=Release .. make
4. 备选方案:用Rosetta 2兼容模式编译
若上述步骤仍未解决,可尝试以x86_64架构编译:
- 打开终端,右键终端图标选择「显示简介」,勾选「使用Rosetta打开」。
- 重启终端,重新执行完整的克隆、初始化子模块、编译步骤。
5. 检查Xcode命令行工具配置
打开Xcode,依次点击「Xcode」→「偏好设置」→「位置」,在「命令行工具」下拉菜单中选择当前安装的Xcode版本,确保配置生效。
内容的提问来源于stack exchange,提问作者Theo Deep
相关产品推荐
相关产品推荐

