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

ARM架构macOS Big Sur下从源码编译R包报错问题咨询

问题根因

你遇到的报错核心来自两个问题:

  1. 你当前安装的R是Intel架构版本(sessionInfo可看到平台为x86_64-apple-darwin17.0),而你装的Homebrew是ARM架构版本(路径在/opt/homebrew),两者架构不兼容,R没法调用brew安装的gcc编译器
  2. 你之前拼凑的Makevars配置没有写全编译器的绝对路径,且硬编码了gcc版本和路径,版本不匹配或gcc升级后路径变动就会失效

修复步骤

第一步:先删除旧的错误配置

打开终端执行以下两行命令,删掉之前错误的Makevars文件,恢复默认配置状态:

rm -f ~/.R/Makevars
rm -f $R_HOME/etc/Makevars

第二步:二选一选择适配方案

方案A:更换为ARM原生版R(推荐,M芯片设备运行速度更快,后续兼容性更好)

  1. 卸载当前Intel版R:打开访达→应用程序,将R程序拖到废纸篓即可
  2. 下载安装Apple Silicon架构的R安装包,版本建议选择4.2及以上(你当前用的4.0.5版本过老,原生不支持M系列芯片)
  3. 确认brew安装的gcc实际版本:终端执行ls /opt/homebrew/bin/gcc*,查看输出中gcc后面跟随的版本号,比如输出包含gcc-12,就将后续配置里的VER值改为-12
  4. 新建正确的Makevars配置:
    • 终端执行mkdir -p ~/.R,如果文件夹已存在会自动跳过
    • 执行open ~/.R,在弹出的文件夹中新建纯文本文件,命名为Makevars
    • 粘贴以下内容,根据你实际的gcc版本修改第一行的VER值:
    VER=-12
    CC=/opt/homebrew/bin/gcc$(VER)
    CXX=/opt/homebrew/bin/g++$(VER)
    CXX11=/opt/homebrew/bin/g++$(VER)
    CXX14=/opt/homebrew/bin/g++$(VER)
    CXX17=/opt/homebrew/bin/g++$(VER)
    FC=/opt/homebrew/bin/gfortran$(VER)
    F77=/opt/homebrew/bin/gfortran$(VER)
    FLIBS=-L`/opt/homebrew/bin/gfortran$(VER) -print-file-name=libgfortran.dylib | xargs dirname`
    CFLAGS=-mtune=native -g -O2
    CXXFLAGS=-mtune=native -g -O2
    
  5. 保存文件后重启R,执行install.packages("igraph", type = "source")即可正常安装。

方案B:保留当前Intel版R

  1. 安装Intel架构版本的Homebrew,终端执行对应安装命令即可
  2. 用Intel版brew安装gcc:
    arch -x86_64 /usr/local/bin/brew install gcc
    
  3. 确认gcc版本:终端执行ls /usr/local/bin/gcc*,查看gcc后的版本号修改后续VER值
  4. 新建Makevars配置,步骤同方案A,内容替换为:
    VER=-12
    CC=/usr/local/bin/gcc$(VER)
    CXX=/usr/local/bin/g++$(VER)
    CXX11=/usr/local/bin/g++$(VER)
    CXX14=/usr/local/bin/g++$(VER)
    CXX17=/usr/local/bin/g++$(VER)
    FC=/usr/local/bin/gfortran$(VER)
    F77=/usr/local/bin/gfortran$(VER)
    FLIBS=-L`/usr/local/bin/gfortran$(VER) -print-file-name=libgfortran.dylib | xargs dirname`
    CFLAGS=-mtune=native -g -O2
    CXXFLAGS=-mtune=native -g -O2
    
  5. 重启R后即可正常安装源码包。

报错原因说明

  • make: gfortran-11: No such file or directory:要么是你实际安装的gcc版本不是11,要么是配置中没有写对gfortran的完整路径,R搜索不到对应程序
  • configure: error: C compiler cannot create executables:架构不兼容,你给Intel版R指定了ARM架构的gcc编译器,编译出的文件无法在Intel架构的R环境下运行,因此检测直接失败。

内容的提问来源于stack exchange,提问作者JankoWTF

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 18:15:02