2

我正在试验由Rcpp.package.skeleton().

我做了一个小改动rcpp_hello_world.cpp,我想重新编译包并使用修改后的代码运行函数。

然而,尽管使用 清除命名空间rm()、使用 分离库detach()、使用 r 删除包emove.packages()、使用 重新编译和重新安装包install.packages(.., repos=NULL, type = 'source')以及使用 重新附加库library(),R 仍然运行旧版本的 .cpp 代码。

如果我退出并重新启动 R,library()将加载修改后的 .cpp 代码并按预期运行它,但我不想每次更改 C++ 代码时都必须重新启动 R(如果可能)。

如何让 R 在不退出 R 的情况下正确刷新 C++ 调用?

4

1 回答 1

3

通常建议重新启动会话/重新加载包。

由于您可能不想重新启动主会话,因此您可以

  • 使用 Rscript 或 littler 加载新示例和测试,我经常这样做

  • 使用 RStudio,其中包构建过程现在构建包并在新会话中为您重新加载它

  • 使用可以拥有多个 R 会话并重新启动这些会话的系统

于 2012-11-02T00:51:36.037 回答