在Windows上安装Rcpp软件包时,需要确保卸载软件包DLL,或者在复制新DLL时出现“Permission Denied”错误。这意味着每次重新编译都会重新启动R,这非常烦人。有没有办法卸载包DLL而不杀死R?
我已经尝试了detach("package:my_package", force=TRUE)
命令,但它没有卸载DLL。
答案 0 :(得分:8)
对此有不同意见。我经常更喜欢在我的主要R会话之外运行构建和测试,只需将R CMD INSTALL
与Rscript
链接(或者在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。