Hi I am sure thsi has been answered or is in the manuals, but I just can't find it - I probably made a stupid mistake.
But I don't manage to specify additional include paths in a package using Rcpp. in my grassRLink.h file I have: ,---- | #ifndef _grassRLink_grassRLink_H | #define _grassRLink_grassRLink_H | | #include <Rcpp.h> | | #include <stdio.h> | #include <stdlib.h> | | #include <grass/gis.h> | #include <grass/raster.h> | #include <grass/glocale.h> | | using namespace Rcpp; | | RcppExport SEXP readRast(String name, String mapset, int row, int col) ; | #endif `---- and to find the files grass/gis.h, grass/raster.h and grass/glocale.h I have the following in y Makevars ,---- | #!/bin/bash | ## Use the R_HOME indirection to support installations of multiple R version | PKG_LIBS = `$(R_HOME)/bin/Rscript -e "Rcpp:::LdFlags()"` | PKG_LIBS = $PKG_LIBS:/Applications/GRASS/GRASS-7.0.app/Contents/MacOS/include/ | | ## some commentsAs an alternative, one can also add this code in a file 'configure' `---- with the idea that the include path is added. But when I use load_all(.) to laod the package, I get the following error: ,---- | > load_all(".", recompile=TRUE) | Loading grassRLink | Re-compiling grassRLink | '/Library/Frameworks/R.framework/Resources/bin/R' --vanilla CMD INSTALL \ | '/Users/rainerkrug/Documents/Projects/grassRLink' \ | --library='/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T//RtmpgWwh9v' \ | --no-R --no-data --no-help --no-demo --no-inst --no-docs --no-exec \ | --no-multiarch --no-test-load --preclean | | * installing *source* package 'grassRLink' ... | ** libs | llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -I"/Users/rainerkrug/Library/R/3.0/library/Rcpp/include" -UNDEBUG -Wall -pedantic -g -O0 -fPIC -mtune=core2 -g -O2 -c RcppExports.cpp -o RcppExports.o | llvm-g++-4.2 -arch x86_64 -I/Library/Frameworks/R.framework/Resources/include -DNDEBUG -I/usr/local/include -I"/Users/rainerkrug/Library/R/3.0/library/Rcpp/include" -UNDEBUG -Wall -pedantic -g -O0 -fPIC -mtune=core2 -g -O2 -c grassRLink.cpp -o grassRLink.o | In file included from grassRLink.cpp:2: | grassRLink.h:10:23: error: grass/gis.h: No such file or directory | grassRLink.h:11:26: error: grass/raster.h: No such file or directory | grassRLink.h:12:27: error: grass/glocale.h: No such file or directory | grassRLink.cpp: In function 'Rcpp::NumericVector readRast(Rcpp::String, Rcpp::String, int, int)': | grassRLink.cpp:7: error: new declaration 'Rcpp::NumericVector readRast(Rcpp::String, Rcpp::String, int, int)' | grassRLink.h:28: error: ambiguates old declaration 'SEXPREC* readRast(Rcpp::String, Rcpp::String, int, int)' | grassRLink.cpp:9: error: 'RASTER_MAP_TYPE' was not declared in this scope | grassRLink.cpp:9: error: expected `;' before 'data_type' | grassRLink.cpp:16: error: 'G_gisinit' was not declared in this scope | grassRLink.cpp:19: error: 'Rast_open_old' was not declared in this scope | grassRLink.cpp:22: error: 'data_type' was not declared in this scope | grassRLink.cpp:22: error: 'Rast_map_type' was not declared in this scope | grassRLink.cpp:25: error: 'Rast_allocate_buf' was not declared in this scope | grassRLink.cpp:28: error: 'Rast_window_rows' was not declared in this scope | grassRLink.cpp:29: error: 'Rast_window_cols' was not declared in this scope | grassRLink.cpp:34: error: 'Rast_get_row' was not declared in this scope | grassRLink.cpp:40: error: 'CELL_TYPE' was not declared in this scope | grassRLink.cpp:42: error: 'FCELL_TYPE' was not declared in this scope | grassRLink.cpp:44: error: 'DCELL_TYPE' was not declared in this scope | grassRLink.cpp:12: warning: unused variable 'nrow' | grassRLink.cpp:12: warning: unused variable 'ncol' | grassRLink.cpp:49: warning: no return statement in function returning non-void | make: *** [grassRLink.o] Error 1 | ERROR: compilation failed for package 'grassRLink' | * removing '/private/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/RtmpgWwh9v/grassRLink' | * restoring previous '/private/var/folders/50/wcr5bjwn75q595n6x82gxj280000gn/T/RtmpgWwh9v/grassRLink' | Error: Command failed (1) | > `---- telling me that the additional header files are not found, even though the path seems to be added: ,---- | -I/Library/Frameworks/R.framework/Resources/include `---- It is probably my limited C / C++ expertise, but wat is going on here? I am working on OS X Mountain Lion, gcc is installed via homebrew, and I can compile other packages without problems. You can find the package at github: https://github.com/rkrug/grassRLink Any suggestions? Thanks, Rainer -- Rainer M. Krug email: RMKrug<at>gmail<dot>com
pgpmvm5kDGKKv.pgp
Description: PGP signature
_______________________________________________ Rcpp-devel mailing list Rcpp-devel@lists.r-forge.r-project.org https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel