[Rcpp-devel] Rstudio package build and Rcpp::compileAttributes()

JJ Allaire jj.allaire at gmail.com
Thu Feb 7 17:48:51 CET 2013


Hi Dale,

In order to ensure that the RcppExports.cpp file is correct it needs
to be deterministically generated, so in all cases we need write
access to it. One possible workaround is this:

- Use a custom SOURCES variable in Makevars to explicitly list the
source files to compile as part of the package

- Don't include RcppExports.cpp in that list

- Add another source file that in turn includes RcppExports.cpp but
wraps it in the required preprocessor directives.

J.J.

On Thu, Feb 7, 2013 at 10:59 AM, Smith, Dale <Dale.Smith at fiserv.com> wrote:
> Hello all,
>
>
>
> I’m using Rstudio 0.97.306, R 2.15-2, and Rcpp 0.10.2 with Windows 7
> Professional x64. I recently switched to using the build tool in Rstudio,
> however, my generated file RcppExports.cpp and RcppExports.R are checked
> into version control, so they are read-only. The build fails with
>
>
>
> ***************
>
> ==> Rcpp::compileAttributes()
>
>
>
> Error in eval(expr, envir, enclos) :
>
>   file io error:
> 'C:/Foundation/Common/RiskFinancialLibrary/Prototypes/FiservPrototypes/src/RcppExports.cpp'
>
> Calls: source ... withVisible -> eval -> eval -> <Anonymous> -> .Call
>
> Execution halted
>
> ***************
>
>
>
> I have them checked in as I need to modify RcppExports.cpp manually, after
> running compileAttributes(), to avoid compiling in Visual Studio (see below
> for explanation, if you are interested):
>
>
>
> #ifndef _MSC_VER
>
>
>
> #include <Rcpp.h>
>
>
>
> using namespace Rcpp;
>
>
>
>>
>
>
> #endif
>
>
>
> I tried removing the generated key at the top of RcppExports.cpp since this
> is mentioned in the Rcpp Attributes Vignette. However, I still have the
> error. Perhaps I’ve misinterpreted section 3.5.2 “Generated Code”?
>
>
>
> In order to avoid generating traffic on the list let me comment on why I’m
> wrapping RcppExports.cpp with _MSC_VER. My employer produces all
> applications and libraries in Visual Studio. I wrap my ANSI C++ classes with
> .NET managed C++ classes and build a .NET assembly. This allows me to use
> Rcpp to test my C++ implementations of models against a clean implementation
> in R and fulfill company requirements that I use Visual Studio unit tests
> for quality assurance. I can then deliver the assembly build to developers
> for use in their own projects.
>
>
>
> I may turn the previous paragraph into a presentation for the Atlanta R
> User’s Group.
>
>
>
> Dale Smith, Ph.D.
>
> Senior Financial Quantitative Analyst
>
> Risk & Compliance
>
> Fiserv
>
> Office: 678-375-5315
>
> www.fiserv.com
>
>
>
>
> _______________________________________________
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel


More information about the Rcpp-devel mailing list