当我尝试从源代码编译R包时,它使用R安装目录中etc/Makeconf
中定义的编译器和设置。如何覆盖这些设置?
我有一个~/.R/Makevars
文件(建议在这里),我在那里包含了我想要的设置,但由于某种原因,这些设置没有被使用。为什么不呢?我该怎么解决?
我找不到关于~/.R/Makevars
和Makeconf
的官方文档——欢迎链接。
在过去,这种设置曾经对我来说是正确的,但最近不行了。我想在最近的R版本中一定有什么变化,但我不确定是什么时候。最近有什么变化可能会影响这一点吗?
动机和背景:
我在macOS上,我想从MacPorts使用gfortran
。因此,我在~/.R/Makevars
中设置了FC = /opt/local/bin/gfortran-mp-11
和FLIBS = -L/opt/local/lib/gcc11 -lgfortran -lquadmath -lm
。但是,系统仍然希望在/usr/local
中使用gfortran安装,这在我的机器上不存在。它清楚地采用了etc/Makeconf
中的路径和选项。我使用的是官方的R二进制文件。
事实证明,在我的机器上尝试构建某个包时忽略~/.R/Makevars
的原因是withr
:中的一个错误
- https://github.com/r-lib/withr/issues/169
使用devtools::install_github("r-lib/withr@master")
安装withr
的开发版本解决了此问题。