You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

M1芯片Mac中Rstudio调用gfortran无法识别-m64参数如何解决

问题原因

M1系列芯片为arm64架构,-m64是面向x86_64架构的编译参数。终端中Rscript运行时会读取shell配置里的环境变量,调用适配arm64架构的gfortran版本,该版本要么自动兼容忽略-m64参数,要么你的R编译配置在终端环境下已经移除了该参数。而Rstudio默认以非登录shell启动,不会读取用户在.zshrc/.bash_profile等配置文件里的环境变量,调用了错误版本的gfortran,才会抛出无法识别-m64参数的报错。

解决方法
  • 方案1:修改R全局编译配置(永久生效)
    1. 打开终端执行R RHOME,获取R的根目录路径,示例返回值为/Library/Frameworks/R.framework/Resources
    2. 进入该路径下的etc文件夹,找到Makeconf文件,若修改提示权限不足,可在终端通过sudo命令调用编辑器打开该文件
    3. 搜索所有包含-m64的行,删除该行中的-m64参数即可,比如将FC = gfortran -m64修改为FC = gfortran,同步修改F77、FLIBS等配置行里的-m64参数
  • 方案2:手动指定Rstudio的环境变量
    1. 临时生效:关闭Rstudio后直接在终端执行open -a RStudio启动,Rstudio会继承终端的所有环境变量,和Rscript运行环境完全一致
    2. 永久生效:打开用户根目录下的~/.Rprofile文件(没有就新建一个),添加如下内容指定gfortran的优先路径:
      Sys.setenv(PATH = paste("/opt/homebrew/bin:", Sys.getenv("PATH"), sep=""))
      
      该配置默认适配通过Homebrew安装的arm64原生gfortran,如果你的gfortran安装在其他路径,替换/opt/homebrew/bin为对应路径即可
  • 方案3:校验gfortran调用路径
    分别在终端和Rstudio控制台执行system("which gfortran"),对比返回的路径,如果不一致就说明Rstudio调用的gfortran版本错误,按照方案2修改PATH优先级即可
  • 兜底方案:如果以上方法都无效,检查你的R是不是通过Rosetta转译安装的x86版本,卸载后安装arm64原生版本的R即可解决问题

内容的提问来源于stack exchange,提问作者Niek de Klein

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 08:24:07