如何加载编译库在R包(How to load compiled library in an R pa

2019-11-02 22:18发布

我写的R包,我需要包括编译的库文件qserver.dll并在包装中的R throught库(mypackage中)被加载dym.load它。 这qserver.dll是由第三方供应商提供,所以我没有源代码。

我没有在互联网上的一些研究,但信息是罕见的。 什么我到目前为止发现的是,我应该把这个文件在我的包文件夹的,以安装/子目录。 但是,我怎么写的包,所以我可以写的东西就像当能确定此文件路径

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

写包时。 非常感谢。

Answer 1:

在项目inst包的目录是通过提供

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

所以假设你有这样的.dll在包路径<pkg>/inst/lib/qserver.dll ,你可以做

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

得到文件的位置。

现在,当然,这不是CRAN接受的, CRAN库策略是对这个很清楚。 所以,如果你真的需要qserver.dll ,无论你需要找到的源代码,或考虑分配不同的路线。



文章来源: How to load compiled library in an R package
标签: r package cran