Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Error when compiling Rcpp code in an R package using RStudio

Tags:

c++

r

rcpp

I am using Rstudio to create a package, and exploring the use of the Rcpp package to gain access to C++ code, however, when trying to build the package, and error is being thrown as follows:

fatal error: Rcpp.h: No such file or directory

Inline C++ code compiles fine, its only when considering standalone C++ files in the src folder, obviously referring to the #include <Rcpp.h> directive at the head of the .cpp file.

I think it may have something to do with environment variables, does anyone know what the correct configuration is and how to fix for Rstudio operating in an Ubuntu 12.04 LTS environment?

The commands sourceCpp('./src/xyz.cpp') execute as to be expected, the error is being thrown when Build and Reload is executed from within the RStudio IDE.

like image 663
Nicholas Hamilton Avatar asked Apr 28 '13 03:04

Nicholas Hamilton


3 Answers

It is hard to say without having the package available. I guess you miss:

LinkingTo: Rcpp

in your DESCRIPTION file.

like image 141
Romain Francois Avatar answered Oct 29 '22 23:10

Romain Francois


Did you by chance start with 'Create a package' in RStudio? If so, are you aware that you may have missed its sibbling option 'Create a package w/ Rcpp' ?

See the page on Using Rcpp with RStudio site for details, and particularly the final section on package building.

Also note that we wrote an entire vignette on using Rcpp with your own packages so I suggest you have a look at that too.

like image 8
Dirk Eddelbuettel Avatar answered Oct 29 '22 23:10

Dirk Eddelbuettel


I encountered this same symptom (Rcpp.h: No such file or directory) when trying to install the "xml2" package on an Ubuntu 14 system. In my case the root cause appeared to be a bad installation of package "Rcpp". Some of the files were there (Rcpp/libs) but others were not (Rcpp/include). I am not sure how the system got into this state but I suspect an installation of that package terminated part way through. Re-installing package "Rcpp" cleared up the issue for me.

like image 1
gcbenison Avatar answered Oct 29 '22 22:10

gcbenison