如何使用静态库编写R扩展

时间:2011-06-22 16:06:03

标签: c++ r static

您好我正在尝试使用预编译的静态库和单个头文件构建R包。这样做的最佳方式是什么?

因为我没有找到任何关于它的信息(仅在创建从src编译的R包时),我决定在扩展src目录中编写一个瘦C ++包装类。我还将库所需的一个头文件添加到src目录中,现在理论上可以链接到我的计算机上的库(我估计)。但是,我想用我的软件包发送静态库,这也应该使链接更容易(我可以将其硬编码到软件包目录中)。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:2)

首先,任何包含已编译源代码的R扩展包都将进行动态链接 - 因为R在运行时加载它。

也就是说,代码的任何外部依赖关系都可以静态链接到扩展包中。为此,您可以尝试在PKG_LIBS参数中列出静态库及其完整路径 - 以及强制静态链接的标准方法。

副手我无法想到使用这种方法的CRAN软件包示例,或者我会将其建议为一个节。