[Rcpp-devel] installing Rcpp on windows
Hi Jeffrey,
On 24 August 2011 at 13:08, Jeffrey Pollock wrote:
| Hello, | | I'm trying to get Rcpp to work on my machine running Windows 7 64 bit but I'm | not having much luck! | | I've reinstalled R in: C:\opt\R-2.13.1 | and have: C:\Rtools\MinGW64 | my path variables are set as: C:\Rtools\bin;C:\Rtools\perl\bin;C:\Rtools\ | MinGW64\bin;C:\opt\R-2.13.1\bin\x64;C:\Program Files\Java\jdk1.6.0_25\bin;C:\ | Program Files\TortoiseSVN\bin;%JAVA_HOME%\bin;%MAVEN_HOME%\bin | | Trying some examples from the help pdf I get the following error, can anyone | help? | | > library(inline) | > library(Rcpp) | > src <- ' | + Rcpp::NumericVectorxa(a); | + Rcpp::NumericVectorxb(b); You are lacking critical spaces: Rcpp::NumericVector xa(a); Rcpp::NumericVector xb(b); Rcpp::NumericVector is the type, xa is the variable of that type and a is the SEXP used to init it. | + intn_xa=xa.size(),n_xb=xb.size(); | + | + Rcpp::NumericVectorxab(n_xa+n_xb-1); | + for(inti=0;i<n_xa;i++) | + ??? for(intj=0;j<n_xb;j++) | + ??? ??? xab[i+j]+=xa[i]*xb[j]; | + returnxab; | + ' | > fun <- cxxfunction(signature(a = "numeric", b = "numeric"), src, plugin = | "Rcpp") | cygwin warning: | ? MS-DOS style path detected: C:/opt/R-213~1.1/etc/x64/Makeconf | ? Preferred POSIX equivalent is: /cygdrive/c/opt/R-213~1.1/etc/x64/Makeconf | ? CYGWIN environment variable option "nodosfilewarning" turns off this | warning. | ? Consult the user's guide for more details about POSIX paths: | ??? http://cygwin.com/cygwin-ug-net/using.html#using-pathnames | file788a7664.cpp: In function 'SEXPREC* file788a7664(SEXPREC*, SEXPREC*)': | file788a7664.cpp:31:1: error: 'NumericVectorxa' is not a member of 'Rcpp' | file788a7664.cpp:32:1: error: 'NumericVectorxb' is not a member of 'Rcpp' The error was quite clear: unknown type. Maybe trying the examples in the examples/ directory is easier as you may avoid copy and paste errors? Dirk | file788a7664.cpp:33:1: error: 'intn_xa' was not declared in this scope | file788a7664.cpp:33:9: error: 'xa' was not declared in this scope | file788a7664.cpp:33:19: error: 'n_xb' was not declared in this scope | file788a7664.cpp:33:24: error: 'xb' was not declared in this scope | file788a7664.cpp:35:1: error: 'NumericVectorxab' is not a member of 'Rcpp' | file788a7664.cpp:35:24: error: 'n_xa' was not declared in this scope | file788a7664.cpp:36:5: error: 'inti' was not declared in this scope | file788a7664.cpp:36:12: error: 'i' was not declared in this scope | file788a7664.cpp:37:6: error: 'intj' was not declared in this scope | file788a7664.cpp:37:13: error: 'j' was not declared in this scope | file788a7664.cpp:38:3: error: 'xab' was not declared in this scope | file788a7664.cpp:39:1: error: 'returnxab' was not declared in this scope | make: *** [file788a7664.o] Error 1 | | ERROR(s) during compilation: source code errors or compiler configuration | errors! | | Program source: | ? 1: | ? 2: // includes from the plugin | ? 3: | ? 4: #include <Rcpp.h> | ? 5: | ? 6: | ? 7: #ifndef BEGIN_RCPP | ? 8: #define BEGIN_RCPP | ? 9: #endif | ?10: | ?11: #ifndef END_RCPP | ?12: #define END_RCPP | ?13: #endif | ?14: | ?15: using namespace Rcpp; | ?16: | ?17: | ?18: // user includes | ?19: | ?20: | ?21: // declarations | ?22: extern "C" { | ?23: SEXP file788a7664( SEXP a, SEXP b) ; | ?24: } | ?25: | ?26: // definition | ?27: | ?28: SEXP file788a7664( SEXP a, SEXP b ){ | ?29: BEGIN_RCPP | ?30: | ?31: Rcpp::NumericVectorxa(a); | ?32: Rcpp::NumericVectorxb(b); | ?33: intn_xa=xa.size(),n_xb=xb.size(); | ?34: | ?35: Rcpp::NumericVectorxab(n_xa+n_xb-1); | ?36: for(inti=0;i<n_xa;i++) | ?37: ??? for(intj=0;j<n_xb;j++) | ?38: ??? ??? xab[i+j]+=xa[i]*xb[j]; | ?39: returnxab; | ?40: | ?41: END_RCPP | ?42: } | ?43: | ?44: | Error in compileCode(f, code, language = language, verbose = verbose) : | ? Compilation ERROR, function(s)/method(s) not created! cygwin warning: | ? MS-DOS style path detected: C:/opt/R-213~1.1/etc/x64/Makeconf | ? Preferred POSIX equivalent is: /cygdrive/c/opt/R-213~1.1/etc/x64/Makeconf | ? CYGWIN environment variable option "nodosfilewarning" turns off this | warning. | ? Consult the user's guide for more details about POSIX paths: | ??? http://cygwin.com/cygwin-ug-net/using.html#using-pathnames | file788a7664.cpp: In function 'SEXPREC* file788a7664(SEXPREC*, SEXPREC*)': | file788a7664.cpp:31:1: error: 'NumericVectorxa' is not a member of 'Rcpp' | file788a7664.cpp:32:1: error: 'NumericVectorxb' is not a member of 'Rcpp' | file788a7664.cpp:33:1: error: 'intn_xa' was not declared in this scope | file788a7664.cpp:33:9: error: 'xa' was not declared in this scope | file788a7664.cpp:33:19: error: 'n_xb' was not declared in this scope | file788a7664.cpp:33:24: error: 'xb' was not declared in this scope | file788a7664.cpp:35:1: error: 'NumericVectorxab' is not a member of 'Rcpp' | fil | In addition: Warning message: | running command 'C:/opt/R-2.13.1/bin/x64/R CMD SHLIB file788a7664.cpp 2> | file788a7664.cpp.err.txt' had status 1 | | ---------------------------------------------------------------------- | _______________________________________________ | 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
Two new Rcpp master classes for R and C++ integration scheduled for New York (Sep 24) and San Francisco (Oct 8), more details are at http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10 http://www.revolutionanalytics.com/products/training/public/rcpp-master-class.php