5

在 Windows 上安装 Rcpp 包时,需要确保包 DLL 已卸载,否则在复制新 DLL 时会出现“Permission Denied”错误。这意味着每次重新编译时都要重新启动 R,这很烦人。有什么方法可以在不杀死 R 的情况下卸载包 DLL?

我试过这个detach("package:my_package", force=TRUE)命令,但它没有卸载 DLL。

4

3 回答 3

8

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

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

于 2013-01-25T03:17:48.080 回答
5

如果您想在您的主 R 会话中执行此操作(不使用 RStudio,这使得重新安装包和重新加载 R 非常容易),您可以使用 devtools:

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

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

于 2013-01-25T12:41:42.207 回答
5

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

于 2013-01-25T03:10:32.450 回答