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

M1 MacBook Pro安装SolarSpectrum失败:x86_64与arm64架构不兼容

M1 MacBook Pro安装自制R包SolarSpectrum架构不兼容问题解决办法

1. 确认R的运行架构

打开R控制台,执行以下命令检查当前R的架构:

sessionInfo()

确保输出中Running under:对应的架构是aarch64-apple-darwin(arm64原生架构)。如果显示x86_64-apple-darwin,说明你在使用Rosetta转译的x86版本R,需要切换到M1原生的arm64版本R(可从CRAN下载对应架构的安装包重装)。

2. 配置编译环境变量

在终端中执行以下命令,强制编译器生成arm64架构的二进制文件:

export CC="clang -arch arm64"
export CXX="clang++ -arch arm64"
export FC="gfortran -arch arm64"

如果需要永久生效,可以把这些命令添加到~/.zshrc或~/.bashrc文件中。

3. 重新编译安装包

方法一:在R控制台安装

启动arm64版本的R,执行源码安装命令:

install.packages("/path/to/SolarSpectrum.tar.gz", type = "source")

替换/path/to/为你的包文件实际路径。

方法二:用终端命令安装

在终端中直接执行:

R CMD INSTALL --configure-args="--host=aarch64-apple-darwin" /path/to/SolarSpectrum.tar.gz

4. 验证架构是否正确

安装完成后,找到包的libs目录,执行以下命令检查生成的.so文件架构:

lipo -info /Library/Frameworks/R.framework/Versions/Current/Resources/library/SolarSpectrum/libs/SolarSpectrum.so

正常输出应为Non-fat file: ... is architecture: arm64。

5. 源码脚本适配(若上述步骤无效)

如果包的源码包含configure脚本或Makefile文件,检查是否硬编码了x86_64架构参数:

  • 打开configure脚本,查找-arch x86_64相关内容,替换为-arch arm64,或直接删除指定架构的参数,让编译器自动适配系统架构。
  • 若存在Makefile.in或Makefile.am,同样修改其中的编译架构选项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 01:57:15