[Rcpp-devel] Compiling Rcpp on windows platforms
Søren Højsgaard
sorenh at math.aau.dk
Tue May 8 01:25:26 CEST 2012
Dear list,
I've noticed a small thing when compiling a .cpp file on windows. Following the Rcpp FAQ document I do
C:\Documents\teaching\2012-ASC\presentations\callingC>Rscript -e "Rcpp:::SHLIB('matprod5.cpp')"
------------------------------------
Sørens .Rprofile in c:/Documents
------------------------------------
Working directory is: C:/Documents/teaching/2012-ASC/presentations/callingC
Calling .First() in .Rprofile
exiting .First()
g++ -m64 -shared -s -static-libgcc -o matprod5.dll tmp.def matprod5.o ------------------------------------ S▒rens .Rprofile in c:/Documents -------------------------
----------- Working directory is: C:/Documents/teaching/2012-ASC/presentations/callingC Calling .First() in .Rprofile exiting .First() C:/programs/R/current/library/
Rcpp/lib/x64/libRcpp.aCalling .Last() in .Rprofile -Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64 -Ld:/RCompile/CRANpkg/extralibs64/local/lib -LC:/programs/R/curren
t/bin/x64 -lR
g++.exe: error: S?rens: Invalid argument
g++.exe: error: .Rprofile: No such file or directory
g++.exe: error: in: No such file or directory
... bla bla bla ...
This is due to a .First() function etc. in my .Rprofile. I then try to use --vanilla with a similar result
C:\Documents\teaching\2012-ASC\presentations\callingC>Rscript --vanilla -e "Rcpp:::SHLIB('matprod5.cpp')"
g++ -m64 -shared -s -static-libgcc -o matprod5.dll tmp.def matprod5.o ------------------------------------ S▒rens .Rprofile in c:/Documents -------------------------
----------- Working directory is: C:/Documents/teaching/2012-ASC/presentations/callingC Calling .First() in .Rprofile exiting .First() C:/programs/R/current/library/
Rcpp/lib/x64/libRcpp.aCalling .Last() in .Rprofile -Ld:/RCompile/CRANpkg/extralibs64/local/lib/x64 -Ld:/RCompile/CRANpkg/extralibs64/local/lib -LC:/programs/R/curren
t/bin/x64 -lR
g++.exe: error: S?rens: Invalid argument
g++.exe: error: .Rprofile: No such file or directory
g++.exe: error: in: No such file or directory
....
I would have thought that the --vanilla option would make things work. Am I overlooking something or is that a bug??
(If I remove the .First() function etc. from my .Rprofile then everything works fine. )
The other option mentioned in the FAQ is to do:
R --vanilla CMD SHLIB matprod5.cpp
- and that works fine (it doesn't if I omit --vanilla). This works because I have created a Makevars file with the lines:
PKG_LIBS=`Rscript -e "Rcpp:::LdFlags()"`
PKG_CXXFLAGS=`Rscript -e "Rcpp:::CxxFlags()"`
According to the FAQ, each line should start with 'export' but that is a *nix command, not a windows command. Perhaps it would be worthwhile mentioning this in the faq.
Best regards
Søren
More information about the Rcpp-devel
mailing list