C+时的Rcpp集成+;函数之间相互调用 我开始用RCPP框架来把C++函数与R.进行合并。

C+时的Rcpp集成+;函数之间相互调用 我开始用RCPP框架来把C++函数与R.进行合并。,c++,r,rcpp,C++,R,Rcpp,以下集成工作正常: cppFunction(' double normal_dens( double x ) { const double SQRT2PI = 2.50662827463; return( exp(-x*x/2.0)/SQRT2PI ); } ') 接下来,我要集成: cppFunction(' double test( double x ,double a) { return( a* normal

以下集成工作正常:

   cppFunction('
   double normal_dens( double x ) 
   {
     const double  SQRT2PI = 2.50662827463;
     return( exp(-x*x/2.0)/SQRT2PI );
   }
  ')
接下来,我要集成:

   cppFunction('
   double test( double x ,double a) 
   {
    return( a* normal_dens(x);); 
   }
  ')
内部cpp编译器抱怨(正确地说)函数normal_dens未知。最简单的方法是什么


许多thx

这些
cppFunction
调用中的每一个都会创建一个独立的共享库。他们彼此不了解

一个简单的替代方法是将所有文件放在同一个文件中:

#include <Rcpp.h>

// [[Rcpp::export]]
double normal_dens( double x ) {
  const double  SQRT2PI = 2.50662827463;
  return( exp(-x*x/2.0)/SQRT2PI );
}

// [[Rcpp::export]]
double test( double x ,double a){
  return( a* normal_dens(x);); 
}
#包括
//[[Rcpp::导出]]
双正常密度(双x){
常数双SQRT2PI=2.50662827463;
返回(exp(-x*x/2.0)/SQRT2PI);
}
//[[Rcpp::导出]]
双重测试(双x,双a){
返回(a*正常密度(x););
}
然后在此文件上调用
sourceCpp
。然后,您将要学习如何制作软件包

i)就在本周,在这个网站上提出了这一问题。ii)这是一个标准的C/C++问题,在每一本像样的书中都有涉及。对于初学者,请查找“函数声明”和“头文件”。