Rcpp:将C++函数移植到 R 中,'Rcpp.h'找不到文件

Rcpp: porting C++ function into R, 'Rcpp.h' file not found

本文关键字:Rcpp 文件 找不到 C++ 函数      更新时间:2023-10-16

我有一些C 代码。我想将其与RCPP一起做一个R包。

这是我在做的:

  1. 通过执行Rcpp.package.skeleton("myPackageName")
  2. 创建一个软件包框架
  3. 运行devtools::load_all()以查看rcpp_hello_world()是否在library(myPackageName)之后工作。它做了!
  4. 使用所有C 源代码,然后将其复制到/src中。再次运行devtools::load_all()后,我仍然可以使用rcpp_hello_world()
  5. 对于现在位于/src中的C 源代码中的每个功能,只需执行此操作:

(a)放在.cpp文件的顶部`

 #include <Rcpp.h>
using namespace Rcpp;

(b)放在每个功能之前 void此注释

 //[[Rcpp::export]]

现在,我愚蠢地认为,如果我运行devtools::load_all(),则可以访问带有编译的代码,并且可以访问这些C 功能。这是不正确的。

这是load_all()之后的错误:

 1 warning generated.
sourcecode1.cc:2:10: fatal error: 'Rcpp.h' file not found
#include <Rcpp.h>
         ^
1 error generated.
make: *** [myPackageName] Error 1
ERROR: compilation failed for package ‘myPackageName’

它找不到标题文件Rcpp.h

(1)我的过程在使用RCPP直接从C 代码创建R软件包时是不正确的吗?这就是我从书中收集的

(2)如何解决此问题?

您需要运行'compileattributes()',rstudio也会为您做。

简而言之,每次更改或添加接口时,都需要运行此功能。