我猜这是一个简单的问题,但我是新来的Cpp,并卡住了。rcpp函数调用另一个rcpp函数
我创建了一个R A功能,采用RCPP和:
// [[Rcpp::export]]
我可以调用R中的功能和它的作品如预期。我们称之为F1
。
接下来,我想创建另一个函数F2
,使用Rcpp
它调用第一个函数。我用标准的函数调用的语言(即F1(arguments))
,它通过R'当我使用sourceCpp()
编译罚款
但是,当我尝试调用R中F2
,我得到:在.Primitive
错误( “.CALL”)(
和
F2缺少
第一.cpp
文件包含
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
double F1(NumericVector a) {
int n = a.size();
double result=0; // create output vector
double ss = 0;
for(int i = 0; i < n; ++i) {
ss += pow(a[i],2);
}
result = ss;
return result;
}
下面是另一个.cpp文件。
#include <Rcpp.h>
using namespace Rcpp;
// [[Rcpp::export]]
double F2(NumericVector a) {
double result=0;
result = F1(a);
return result;
}
这是含糊不清的。请显示您尝试使用的代码。 –
谢谢。我明白你现在要做的是什么。 –
感谢您分享代码。你在这里做的事情不会在普通的C++中工作,要么第二个C++文件没有F1的声明。通常,人们可以在标题中使用通用声明。罗曼在他的回答中表现出的作品,但必须被认为是黑客。了解多文件C++项目。或者把东西放在一个文件中。 –