M1芯片MacBook Pro运行Fortran代码报f951无法识别-auxbase选项求助
问题根因
你遇到的f951: Error: unrecognized command-line option ‘-auxbase’报错核心是架构不兼容:
- 当前使用的gfortran来自conda的fermi环境,是为x86_64架构编译的7.5.0版本,和M1芯片的arm64架构不匹配
- 系统默认gcc是苹果原生的clang(arm64版本),和x86架构的gfortran调用逻辑不一致,触发了不识别的编译参数错误
解决思路
按优先级从高到低排序:
方案1:安装适配M1芯片的原生gfortran
- 先退出当前的conda fermi环境,执行
conda deactivate直到终端没有环境名前缀 - 用Homebrew安装原生arm64版本的gcc(自带gfortran),执行
brew install gcc - 安装完成后验证:
which gfortran应返回/opt/homebrew/bin/gfortran,再执行gfortran -v确认Target字段为arm64-apple-darwin20.5.0 - 测试编译:
gfortran test.f -o test && ./test,正常会输出Hello World
方案2:适配现有conda环境的gfortran
如果必须保留fermi环境使用,可通过Rosetta 2转译运行x86_64版本的工具链:
- 打开访达→应用程序→实用工具→右键点击「终端」→选择「获取信息」→勾选「使用Rosetta打开」
- 重启终端后进入fermi环境:
conda activate fermi - 此时所有命令默认走x86_64转译,再执行gfortran编译即可正常运行
方案3:临时指定编译参数规避报错
仅做临时测试使用,不推荐长期使用:
编译时添加-no-integrated-as参数,执行gfortran -no-integrated-as test.f -o test即可跳过架构不匹配的参数校验
内容的提问来源于stack exchange,提问作者Pfesi van Zyl
相关产品推荐
相关产品推荐

