我正在尝试在R中构建一个涉及Rcpp包的包。当我使用命令Rcpp.package.skeleton("pck338")生成软件包时。

默认情况下,包括文件rcpp_hello_world.cpp,还包括RcppExports.cpp文件。

据我了解,每次将新的compileAttributes()函数添加到.cpp目录时,都需要运行src函数。

为此,我在rcpp_dance.cpp文件中编写了一个简单的函数,如下所示:

# include <Rcpp.h>
using namespace Rcpp;

// [[Rcpp:export]]
int rcpp_dance(int x) {
  int val = x + 5;
  return val;
}


但是,当我运行compileAttributes()时,RcppExports.cpp保持不变,因此Dance函数不会转换为R函数。为什么会这样呢?任何具体和一般性的反馈将不胜感激。

最佳答案

在这种情况下,闻起来可能有错误,请检查是否有错误。我学会了(艰难的方式)首先假设我无所适从...

在您的情况下:::!= :

您想要带两个冒号的Rcpp::export。试试看,冲洗,重复...

(还有另一个猜想:每次接口更改时,您都需要重新运行compileAttributes():在签名中添加或删除或重命名或重命名参数,当然还要添加或删除整个函数。但是值得庆幸的是,函数是如此快速,这样您就可以养成经常运行它的习惯。如有疑问,请运行它。)

关于r - Rcpp::compileAttributes()不更新.R文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/59206101/

10-12 17:59