可以在不重新启动R的情况下卸载Rcpp包DLL吗?

时间:2013-01-25 03:02:27

标签: r rcpp

在Windows上安装Rcpp软件包时,需要确保卸载软件包DLL,或者在复制新DLL时出现“Permission Denied”错误。这意味着每次重新编译都会重新启动R,这非常烦人。有没有办法卸载包DLL而不杀死R?

我已经尝试了detach("package:my_package", force=TRUE)命令,但它没有卸载DLL。

3 个答案:

答案 0 :(得分:8)

对此有不同意见。我经常更喜欢在我的主要R会话之外运行构建和测试,只需将R CMD INSTALLRscript链接(或者在Linux上,来自littler的r调用)来测试新的构建。如果您使用R CMD INSTALL ...的正确选项来跳过可能需要额外时间的部分,那么您可以获得快速周转,并确保获得新的构建。

如果您想通过单击按钮获得相同的行为,RStudio也会提供它。

答案 1 :(得分:5)

如果你想在主R会话中这样做(不使用RStudio,这使得重新安装包并重新加载R非常容易),你可以使用devtools:

library(devtools)
load_all("path/to/my/package")

除此之外,load_all将重新加载所有R代码,并重新编译并重新附加DLL。

答案 2 :(得分:4)

我猜你需要运行library.dynam.unload来卸载DLL。