【发布时间】:2016-09-07 01:55:08
【问题描述】:
在编写 R 包时,加载动态链接库(即.so 文件)的正确方法是什么?到目前为止,唯一对我有用的解决方案是指定 .so 文件的完整路径,例如:
dyn.load('/FULL/PATH/TO/MY/R_PACKAGE/src/my_file.so')
显然,这种方法不适用于 CRAN/Bioconductor 提交,因为无法找到 .so 文件。因此,我(未成功)尝试了以下替代方案:
1) library.dynam()
2)library.dynam('my_file.so')
3)library.dynam('my_file.so', 'R_PACKAGE')
4) system.file("src", "my_file.so", package = "R_PACKAGE")
相关链接:R: C symbol not in load table、R: C symbol name not in load table - error in linking with external .c files。
为了清楚起见,我的 R 包的用户显然可以在他们的计算机上设置任意工作目录。完整路径方法(如上所示)唯一可行的方法是将其工作目录设置为/FULL/PATH/TO/MY/R_PACKAGE/src,这(当然)是不切实际的。
【问题讨论】: