macOS Mojave系统CLion中OpenMP项目执行失败求助
解决macOS Mojave上CLion+LLVM+OpenMP链接错误:
ld: unknown option: -platform_version 我之前在Mojave上配置LLVM+OpenMP的时候也遇到过一模一样的问题!本质原因是系统自带的旧版链接器(ld)和Homebrew安装的新版LLVM clang不兼容——新版LLVM clang会传递一些系统ld识别不了的参数(比如-platform_version),直接导致链接阶段报错。
亲测有效的解决步骤:
修改你的CMakeLists.txt,指定使用LLVM自带的链接器
在你设置CMAKE_CXX_COMPILER的代码后面,加上这两行配置:set(CMAKE_LINKER /usr/local/opt/llvm/bin/ld.lld) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld")调整后的完整CMakeLists.txt大概是这样:
cmake_minimum_required(VERSION 3.5.1) project(...) include_directories("/usr/local/include" "/usr/local/opt/llvm/include") link_directories("/usr/local/lib" "/usr/local/opt/llvm/lib") set(CMAKE_CXX_COMPILER /usr/local/opt/llvm/bin/clang++) # 添加LLVM链接器配置,解决版本兼容问题 set(CMAKE_LINKER /usr/local/opt/llvm/bin/ld.lld) set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=lld") set(CMAKE_CXX_STANDARD 14) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -march=native -fopenmp -O3") add_executable(...)清理CLion缓存并重新构建
- 直接点击CLion顶部菜单栏的
File -> Reload CMake Project - 或者干脆删掉项目目录下的
build文件夹,再重新运行构建,确保新的配置生效
- 直接点击CLion顶部菜单栏的
额外验证步骤(可选)
如果你不确定LLVM链接器的路径是否正确,可以在终端执行这条命令确认:
ls /usr/local/opt/llvm/bin/ld.lld
如果能看到这个文件,说明路径没问题;要是找不到,就用brew --prefix llvm命令获取LLVM的安装前缀,替换掉上面的/usr/local/opt/llvm就行。
内容的提问来源于stack exchange,提问作者tt_531
相关产品推荐
相关产品推荐

