尽管编写 R 扩展手册提到了 f90/f95。好像支持的不太好,尤其是和C++混用。
https://stat.ethz.ch/pipermail/r-devel/2015-March/070851.html
但是如果我必须在 Rcpp 中使用 f90/f95 代码。目前是否有可用的漫游?谢谢。
(我想我只是在 rcpp-devel 上回答我相当类似的问题。)
引用来自编写 R 扩展的第 1.1.5 节,我在下面使用了粗体:
编译代码的源代码和头文件在 src 中,另外还有一个文件 Makevars 或 Makefile。当使用 R CMD INSTALL 安装包时,make 用于控制编译和链接到共享对象以加载到 R。对此有默认的 make 变量和规则(在 R_HOME/etcR_ARCH/Makeconf 中配置和记录 R 时确定) ),支持 C、C++、FORTRAN 77、Fortran 9x15、Objective C 和 Objective C++16 以及相关的扩展名 .c、.cc 或 .cpp、.f、.f90 或 .f95、.m 和 .mm , 分别。我们建议将 .h 用于头文件,也用于 C++17 或 Fortran 9x 包含文件。(不再支持对 C++ 使用扩展名 .C。) src 目录中的文件不应隐藏(以点开头),并且在某些 R 版本下隐藏文件将被忽略。
将所有这些语言混合在一个包中是不可移植的(并且可能根本不可能),并且我们不支持同时使用 C++ 和 Fortran 9x。因为 R 本身使用它,所以我们知道 C 和 FORTRAN 77 可以一起使用,混合 C 和 C++ 似乎取得了广泛的成功。
你必须问 R Core 为什么他们选择取缔这一点。通常,这意味着一些技术原因。我不使用 Fortran,所以我无法帮助其背后的推理。