是否可以在R会话中重新加载带有本机扩展的R包?
我正在开发Rliblinear,它使用了几个C函数。
如果我对软件包中的R代码进行了更改,则只需重新安装并重新加载即可;

$ R CMD build Rliblinear
$ R CMD INSTALL Rliblinear


然后放在R外壳中;

> detach("package:Rliblinear", unload=TRUE)
> library(Rliblinear)


但是,除非重新启动C解释器,否则R函数不会受到影响。
有没有一种方法可以强制解释器重新加载共享对象Rliblinear.so

最佳答案

这将列出您加载的动态链接库:

library.dynam()


这将在Rliblinear软件包中卸载Rliblinear.*

library(Rliblinear)

# ... run package ...

detach("package:Rliblinear", unload = TRUE)
library.dynam.unload("Rliblinear", system.file(package = "Rliblinear"))


您可以再次发出library.dynam()来检查它是否不再列出。

10-08 17:52