Hello, I'm trying to fix the installation issue I have with the package udpipe: https://github.com/bnosac/udpipe but I'm getting issues on Solaris giving messages like this:
/opt/csw/bin/g++ -std=gnu++11 -I/opt/R/R-3.4.1-patched-gcc/lib/R/include -DNDEBUG -I"/export/home/XyG0aYI/R/Rcpp/include" -I/opt/csw/include -I/usr/local/include -fPIC -O2 -c RcppExports.cpp -o RcppExports.o In file included from /opt/csw/include/c++/5.2.0/cmath:44:0, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp/platform/compiler.h:100, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp/r/headers.h:48, from /export/home/XyG0aYI/R/Rcpp/include/RcppCommon.h:29, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp.h:27, from RcppExports.cpp:4: /usr/include/math.h:45:12: error: ‘std::float_t’ has not been declared using std::float_t; ^ /usr/include/math.h:46:12: error: ‘std::double_t’ has not been declared using std::double_t; This type of error seems to be something that has been mentioned in https://journal.r-project.org/archive/2011-2/RJournal_2011-2_Plummer.pdf but still can't seem to find the solution. To make this problem as tiny as possible, I've made a reproducible example. Let's say I have an R package with the following inside the src folder #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::plugins(cpp11)]] CharacterVector na_locf(CharacterVector x) { return x; } If the DESCRIPTION file mentions the following: Imports: Rcpp (>= 0.12.12) LinkingTo: Rcpp SystemRequirements: C++11 Or if there is CXX_STD=CXX11 in the Makevars file, I get the errors like this when building on Solaris (see log on https://builder.r-hub.io/status/original/ttt_0.1.0.tar.gz-26c279a1b07047fea8ded89b4e07c6ad), using rhub::check(platform = "solaris-x86-patched"), while on Ubuntu this is working fine. /opt/csw/bin/g++ -std=gnu++11 -I/opt/R/R-3.4.1-patched-gcc/lib/R/include -DNDEBUG -I"/export/home/XyG0aYI/R/Rcpp/include" -I/opt/csw/include -I/usr/local/include -fPIC -O2 -c RcppExports.cpp -o RcppExports.o In file included from /opt/csw/include/c++/5.2.0/cmath:44:0, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp/platform/compiler.h:100, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp/r/headers.h:48, from /export/home/XyG0aYI/R/Rcpp/include/RcppCommon.h:29, from /export/home/XyG0aYI/R/Rcpp/include/Rcpp.h:27, from RcppExports.cpp:4: /usr/include/math.h:45:12: error: ‘std::float_t’ has not been declared using std::float_t; I f I do not add SystemRequirements: C++11 and remove the Makevars file, this works fine on Solaris. I need however C++11 as I need it in the udpipe R package for building udpipe.cpp but can't add to that udpipe.cpp file the following types of statements due to conflicts on the use of the Free macro. #include <Rcpp.h> using namespace Rcpp; // [[Rcpp::plugins(cpp11)]] Is there anyone having similar problems that can give an indication on how to solve this Solaris build issue? many thanks, Jan Jan Wijffels Statistician www.bnosac.be | +32 486 611708
_______________________________________________ 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