[Rcpp-devel] split the c++ code in several files

baptiste auguie baptiste.auguie at googlemail.com
Thu Sep 16 15:24:20 CEST 2010

Dear list,

This is probably not specific to Rcpp but I couldn't find any advice
in the R-exts manual. I am using RcppArmadillo in a package to do some
linear algebra. The C++ code is getting a bit too large to manage in
one file only, I would like to split its content in several files.
It seems possible, but I'm not sure how to deal with the scoping
rules: if a function requires a subroutine defined in another file it
seems to have a scoping problem (the compilation fails with message
"error: ‘xxxx’ was not declared in this scope)". Currently my cpp file
looks like this,

#include "cda.h"
#include <RcppArmadillo.h>
#include <iostream>

using namespace Rcpp ;
using namespace RcppArmadillo ;

using namespace std;

extern "C" {

  arma::mat foo(const arma::mat& R) {

  // R wrapper
  RCPP_FUNCTION_1(NumericMatrix, test, NumericMatrix IR)
   arma::mat R = Rcpp::as< arma::mat >(IR);
   return wrap( foo(R) );
 // other routines

(The actual file is here:

Are there workarounds / rules to split the content in several files?

Best regards,


More information about the Rcpp-devel mailing list