在 Windows 上安装 Rcpp 包时,需要确保包 DLL 已卸载,否则在复制新 DLL 时会出现“Permission Denied”错误。这意味着每次重新编译时都要重新启动 R,这很烦人。有什么方法可以在不杀死 R 的情况下卸载包 DLL?
我试过这个detach("package:my_package", force=TRUE)
命令,但它没有卸载 DLL。
对此意见分歧。我通常更喜欢在我的主 R 会话之外运行构建和测试,只需通过链接R CMD INSTALL
(Rscript
或者,在 Linux 上,r
来自 littler 的调用)来测试新构建。如果您使用适当的选项来R CMD INSTALL ...
跳过可能需要额外时间的部分,您将获得快速周转,并确保您确实获得了全新的构建。
如果您希望通过单击按钮获得相同的行为,RStudio 也提供了它。
如果您想在您的主 R 会话中执行此操作(不使用 RStudio,这使得重新安装包和重新加载 R 非常容易),您可以使用 devtools:
library(devtools)
load_all("path/to/my/package")
除其他外,load_all
将重新加载所有 R 代码,并重新编译和重新附加 DLL。
我猜你需要运行library.dynam.unload
来卸载 DLL。