MacBook Pro M1环境下安装含OpenMP依赖的Python包时遇clang错误:unsupported option '-fopenmp'的解决方案求助
解决M1 MacBook Pro上Python包编译时clang不支持-fopenmp的问题
嗨,我来帮你一步步搞定这个问题!你遇到的报错根源很明确:M1 Mac默认用的Apple clang编译器不支持OpenMP的-fopenmp参数,但你要装的包刚好需要OpenMP并行支持。咱们换用GCC编译器就能解决,下面是完全适合初学者的操作步骤:
第一步:安装支持OpenMP的GCC
M1 Mac上用Homebrew装GCC最省心,先确认你有没有Homebrew:
- 打开终端,输入
brew --version,如果能看到版本号就说明已经装好了;如果没装,直接运行下面的命令安装:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" - 安装Homebrew后,运行这条命令装GCC:
brew install gcc - 装完后输入
brew info gcc,看看你装的GCC版本号(比如gcc-13),把这个数字记下来,后面要用到。
第二步:两种方式让Python包用GCC编译
方法一:临时指定编译器(推荐,不用改代码)
进入到包含setup.py的包文件夹里,在终端运行下面的命令(把gcc-13换成你刚才记的版本号):
CC=gcc-13 CXX=g++-13 pip install .
这条命令的作用是告诉pip:“别用默认的clang了,用GCC作为C编译器、G作为C编译器来编译这个包”,这样-fopenmp参数就能被正常识别啦。
方法二:修改setup.py(适合需要多次编译的场景)
如果你以后还要反复编译这个包,可以直接修改setup.py让它默认用GCC:
- 打开
setup.py文件,在最开头添加这几行代码(记得替换版本号):import os os.environ['CC'] = 'gcc-13' os.environ['CXX'] = 'g++-13' - 保存文件后,正常运行
pip install .就可以了。
小提醒
- 如果安装GCC后找不到命令,重启一下终端就行,Homebrew会自动把GCC的路径加到系统环境里。
- 如果你用的是虚拟环境,要先激活虚拟环境再运行上面的命令哦。
内容的提问来源于stack exchange,提问作者Saram Abbas
相关产品推荐
相关产品推荐

