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

如何在R包中加载已编译的库,r,package,cran,R,Package,Cran,我正在编写一个R包,其中需要包含一个已编译的库文件qserver.dll,并在R throught library(myPackage)中加载该包时加载dym.load。这个qserver.dll是由第三方供应商提供的,所以我没有源代码 我在互联网上做了一些研究,但信息很少。到目前为止,我发现我应该把这个文件放在我的包文件夹的to inst/子目录中。但是,在编写包时,如何确定该文件的路径,以便编写类似 dyn.load("path/to/file/qserver.dll") 写包裹的时候。非

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

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

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

写包裹的时候。非常感谢。

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

system.file(..., package=<mypkg>)
以获取文件位置


现在,当然,这是不可接受的,在这一点上,我们已经非常清楚了。所以,如果你真的需要<代码> qServer。dll <代码>,或者你需要找到源代码,或者考虑一个不同的分发路径。

实际上源是可用的,即文件<代码> Base.c<代码>和<代码> C.O./COD>。有关如何从提供的源代码构建
qserver.dll
的说明,请参见
README.txt
。不确定这是否能正常工作,尚未测试。在将任何内容发布到CRAN之前,我们也会检查
qserver
实用程序的许可证,因为kdb是一个专有数据库。如果您最终将
qserver
转换为R包格式,您是否介意共享?我实际上也在考虑把它转换成一个包
system.file("lib/qserver.dll", package=<mypkg>)