如何在R包中加载已编译的库

时间:2014-02-11 23:07:33

标签: r package cran

我正在编写一个R包,我需要在R throught库(myPackage)中加载包时包含一个已编译的库文件qserver.dll和dym.load。此qserver.dll由第三方供应商提供,因此我没有源代码。

我在互联网上做了一些研究,但信息很少见。到目前为止我发现的是我应该将此文件放在我的包文件夹的to inst /子目录中。但是,在编写包时我如何确定此文件的路径,以便我可以编写类似

的内容
dyn.load("path/to/file/qserver.dll")

编写包时。非常感谢。

1 个答案:

答案 0 :(得分:2)

包的inst目录中的项目可通过

获得
system.file(..., package=<mypkg>)

假设您在包裹路径.dll中有<pkg>/inst/lib/qserver.dll,那么就可以

system.file("lib/qserver.dll", package=<mypkg>)

获取文件位置。

现在,当然,这不是CRAN可接受的,CRAN Repository Policy对此非常清楚。因此,如果您真的需要qserver.dll,您需要找到源代码,或者考虑使用不同的路由进行分发。