M1芯片Mac下CLion配置SDL项目架构不兼容问题求助
M1 Mac上CLion开发SDL架构不兼容问题解决方法
出现这个错误是因为CLion默认以x86_64架构编译项目,但你通过Homebrew安装的SDL是arm64架构(适配M1芯片),两者架构不匹配导致链接失败,以下是几种解决思路:
方案一:让CLion编译arm64架构目标
- 打开CLion,通过快捷键
Cmd+,打开偏好设置,找到Build, Execution, Deployment > CMake - 在当前配置的
CMake options输入框中添加:-DCMAKE_OSX_ARCHITECTURES=arm64 - 或者直接在项目的
CMakeLists.txt开头添加一行配置:set(CMAKE_OSX_ARCHITECTURES arm64) - 点击CLion顶部的Reload CMake Project按钮,清理原有构建文件后重新编译运行
方案二:安装x86_64版本的SDL并适配编译
- 打开带Rosetta的终端:右键访达中的「终端」应用,选择「显示简介」,勾选「使用Rosetta打开」
- 在该终端中执行命令安装x86架构的SDL:
arch -x86_64 brew install sdl2 - 回到CLion,同样在CMake配置中添加:
-DCMAKE_OSX_ARCHITECTURES=x86_64,确保项目以x86架构编译
验证架构匹配情况
- 检查SDL库的架构:执行命令
输出如果是lipo -info /opt/homebrew/lib/libSDL2.dylibNon-fat file: ... is architecture: arm64则为arm64版本,x86_64则为x86版本 - 检查编译后的可执行文件架构:找到项目构建后的可执行文件,执行
确保其架构与SDL库一致即可lipo -info 你的可执行文件路径
内容的提问来源于stack exchange,提问作者Hongbin BAO
相关产品推荐
相关产品推荐

