[Rcpp-devel] Rcpp build trouble with strings
jacob.a.russell.th at dartmouth.edu
jacob.a.russell.th at dartmouth.edu
Fri Aug 16 19:45:57 CEST 2013
Hello,
I am trying to build a package but I have quite a few dependencies. As such, I
have modified Makevars to be (I don't like backticks because I find them too
similar to single quotes):
PKG_LIBS = $($(R_HOME)/bin/Rscript -e 'Rcpp:::LdFlags()') -L. -llink_4_1b -lDGG -lSTR -lDLL -lAF -lmy_std -lm
PKG_CPPFLAGS=-I. -g
Which seems to compile when my R wrapper is (incorrectly):
RcppExport SEXP getDocGraph(std::string input){
std::string testStr = input;
std::string output=getDG(testStr);
return(Rcpp::wrap(output));
}
but then it gives me a segmentation fault because it cannot access the
underlying character array (or general object) passed in by R.
Then if I change the function protoype to:
RcppExport SEXP getDocGraph(SEXP input){
std::string testStr = Rcpp::as<std::string>(input);
std::string output=getDG(testStr);
return(Rcpp::wrap(output));
}
it seems to compile, but when I go to check the package, the .Rcheck directory
gives me an error:
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object ...<packagename>.so':
and the .so file is not in the tgz package, but no error was given during
compilation.
Any help is greatly appreciated.
Thanks!
Jacob Russell
More information about the Rcpp-devel
mailing list