RCpp:如何在不重新启动R的情况下重新加载重新编译的C ++代码

时间:2012-11-01 18:33:16

标签: c++ r rcpp

我正在尝试Rcpp.package.skeleton()生成的rcpp_hello_world示例。

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

但是,尽管使用rm()清除了名称空间,但是使用detach()分离了库,使用r emove.packages()删除了包,重新编译并重新安装包{ {1}},并使用install.packages(.., repos=NULL, type = 'source')重新附加库,R仍然运行旧版本的.cpp代码。

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

如何在不退出R?

的情况下让R正确刷新C ++调用

1 个答案:

答案 0 :(得分:3)

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

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

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

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

  • 使用一个系统,您可以在其中拥有多个R会话并重新启动