我正在编写一个R包,我需要在R throught库(myPackage)中加载包时包含一个已编译的库文件qserver.dll和dym.load。此qserver.dll由第三方供应商提供,因此我没有源代码。
我在互联网上做了一些研究,但信息很少见。到目前为止我发现的是我应该将此文件放在我的包文件夹的to inst /子目录中。但是,在编写包时我如何确定此文件的路径,以便我可以编写类似
的内容dyn.load("path/to/file/qserver.dll")
编写包时。非常感谢。
答案 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
,您需要找到源代码,或者考虑使用不同的路由进行分发。