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

Apple M1 Pro设备安装R包NORMT3失败,求解决方法

解决M1芯片MacBook Pro安装R包NORMT3失败的问题

核心错误分析

从安装日志可明确,失败根源是架构不兼容:

  • clang编译C代码采用x86_64架构,而gfortran编译Fortran代码(toms680-1.o)生成的是arm64架构文件
  • 链接器因此忽略了Fortran目标文件,最终导致加载时缺失_wofz_符号(该符号由Fortran代码定义)

解决方案

方案1:通过Rosetta 2以x86_64架构安装

  • 找到「终端」应用,右键选择「显示简介」,勾选「使用Rosetta打开」
  • 重启终端,重新执行安装命令:
    wget https://cran.r-project.org/src/contrib/Archive/NORMT3/NORMT3_1.0.4.tar.gz
    R CMD install NORMT3_1.0.4.tar.gz
    
  • 原理:Rosetta 2让终端以x86_64模式运行,gfortran会编译出对应架构的目标文件,消除架构不匹配问题。

方案2:统一使用arm64编译环境

  1. 确保安装的是Apple Silicon版本的R(从CRAN下载对应安装包,不要选x86_64版本)
  2. 在arm64模式的终端下(不启用Rosetta),通过Homebrew安装arm64版gfortran:
    brew install gcc
    
  3. 重新执行原安装命令,此时clang和gfortran都会以arm64架构编译代码,链接过程正常。

方案3:修改包的编译配置(进阶)

  • 先解压安装包:
    tar -xzf NORMT3_1.0.4.tar.gz
    
  • 进入解压后的NORMT3/src目录,新建或修改Makevars文件,添加以下内容强制指定arm64架构:
    CC=clang
    CFLAGS=-arch arm64 -mmacosx-version-min=11.0
    FC=gfortran
    FFLAGS=-arch arm64 -mmacosx-version-min=11.0
    
  • 重新打包并安装:
    tar -czf NORMT3_1.0.4_mod.tar.gz NORMT3
    R CMD install NORMT3_1.0.4_mod.tar.gz
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 16:45:09