我一直在做研究,但不太清楚如何构建调用 C 函数的 R 包,以便它能够在 Windows 和 Linux 环境中工作。我正在 Linux 机器上构建该包。
我有两个 C 文件,一个.C 和两个.C,我在使用 package.sculpture(...) 后将这两个文件放在 src 目录中。在命名空间文件中,我使用命令:useDynLib(one,two)。它是否正确?或者我是否需要输入实际的函数名称而不是文件名?我需要导出函数名称吗?
我是否需要将 .so 文件放在 src 目录中,还是会自动创建这些文件?我担心它无法在需要 .dll 文件的 Windows 计算机上运行。
正如你所看到的,我有点困惑,谢谢你的帮助。
标准 R 手册之一是编写 R 扩展。本手册的一部分是第5 节系统和外语界面。这可能会回答您的大部分问题。对于动态链接库(dll或so),它们是动态构建的。您开发您的包,包括 C 代码。一旦您想要从源代码安装库(例如使用R CMD INSTALL spam),或创建二进制发行版,C 代码将被编译到适当的库文件中。