编译MiBS源码时遇clang: error: unsupported option '-fopenmp'错误求助
解决clang不支持'-fopenmp'编译MiBS的问题
以下是无需修改源码即可解决的方案:
配置完整的LLVM clang环境变量(单次终端会话生效,若需永久生效可添加到
~/.bashrc或~/.zshrc):brew install llvm libomp # 针对Intel芯片的Mac export CC=/usr/local/opt/llvm/bin/clang export CXX=/usr/local/opt/llvm/bin/clang++ export LDFLAGS="-L/usr/local/opt/llvm/lib -L/usr/local/opt/libomp/lib" export CPPFLAGS="-I/usr/local/opt/llvm/include -I/usr/local/opt/libomp/include" export PATH="/usr/local/opt/llvm/bin:$PATH" # 针对Apple Silicon芯片的Mac,brew路径为/opt/homebrew,需替换为: # export CC=/opt/homebrew/opt/llvm/bin/clang # export CXX=/opt/homebrew/opt/llvm/bin/clang++ # export LDFLAGS="-L/opt/homebrew/opt/llvm/lib -L/opt/homebrew/opt/libomp/lib" # export CPPFLAGS="-I/opt/homebrew/opt/llvm/include -I/opt/homebrew/opt/libomp/include" # export PATH="/opt/homebrew/opt/llvm/bin:$PATH"设置完成后,在同一个终端中重新执行
./configure和make,无需重启电脑(重启会清空临时环境变量)。手动指定编译参数给configure脚本:
如果configure仍未自动检测到OpenMP支持,可直接传递参数强制启用:./configure --enable-openmp CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++ # Apple Silicon芯片替换路径为/opt/homebrew/opt/llvm/bin/clang或直接传入OpenMP编译链接选项:
./configure CFLAGS="-fopenmp" CXXFLAGS="-fopenmp" LDFLAGS="-lomp" CC=/usr/local/opt/llvm/bin/clang CXX=/usr/local/opt/llvm/bin/clang++验证clang版本:
执行clang --version确认当前使用的是LLVM clang(输出包含"LLVM"字样),而非Apple默认clang(仅显示"Apple clang")。若仍为Apple clang,说明环境变量未正确生效,需检查brew安装路径是否正确。
内容的提问来源于stack exchange,提问作者Leon Zimmermann
相关产品推荐
相关产品推荐

