我有一个从c ++函数返回的用户定义对象,可以使用Rstudio中的Rcpp库以R代码访问该对象。
使用“ R CMD INSTALL”在opencpu上构建并部署R包时,g ++编译器会引发错误:“ Result”未命名类型。
'Result'是一个c ++类,由c ++代码返回给调用的R代码。我认为R无法识别此c ++类,但在键入自动完成功能时会显示Result类。
我不明白为什么命令“ R CMD INSTALL”没有按预期执行和安装。
rcpp.c文件
#include <Rcpp.h>
#include "Engine.h"
#include "Result.h"
using namespace Rcpp;
using Engine::execute;
// [[Rcpp::export]]
List rcpp_hello_world() {
CharacterVector x = CharacterVector::create( "foo", "bar" ) ;
NumericVector y = NumericVector::create( 0.0, 1.0 ) ;
List z = List::create( x, y ) ;
return z ;
}
// [[Rcpp::export]]
Result execute(){
printf("In cpp call!!");
ForecastingModel *fm;
InputData *sid;
int i=1;
int j=1;
utils::Time *startTime;
utils::Time *endTime;
return Engine::execute(*fm,*sid,i,j,*startTime,*endTime);
}
c ++文件
#ifndef RESULT_H
#define RESULT_H
#include<string>
#include<vector>
class Result
{
private:
int status ;
std::vector<double> forecast;
std::string dataproblem ;
public:
std::string getDataproblem( );
void setDataproblem(std::string);
void setForecast(std::vector<double> );
std::vector<double>& getForecast();
int getStatus( );
void setStatus(int);
};
#endif
感谢您的帮助。谢谢!