首页 > 解决方案 > 如何覆盖 R 使用的编译器?

问题描述

当我尝试从源代码编译 R 包时,它使用etc/MakeconfR 安装目录中定义的编译器和设置。如何覆盖这些设置?

我有一个~/.R/Makevars文件(例如在这里建议),并且我在其中包含了我想要的设置,但由于某种原因这些设置没有被使用。为什么不,我该如何解决这个问题?

我找不到官方文档,~/.R/Makevars并且Makeconf-欢迎提供链接。

过去,这种相同的设置曾经对我正常工作,但最近却不行。我认为最近的 R 版本一定发生了一些变化,但我不确定什么时候。最近是否有任何可能影响这一点的变化?


动机和背景:

我在 macOS 上,我想gfortran从 MacPorts 使用。因此我设置FC = /opt/local/bin/gfortran-mp-11FLIBS = -L/opt/local/lib/gcc11 -lgfortran -lquadmath -lmin ~/.R/Makevars。但是,系统仍然想/usr/local在我的机器上使用 gfortran 安装,它不存在。它显然从etc/Makeconf. 我正在使用官方的 R 二进制文件。

标签: rpathr-package

解决方案


~/.R/Makevars事实证明,在我的机器上尝试构建某个包时被忽略的原因是一个错误withr

安装withr使用的开发版本devtools::install_github("r-lib/withr@master")解决了这个问题。


推荐阅读