[Rcpp-devel] Compile problem on Win x64 resolved with -std=c++0x
edd at debian.org
Tue Jul 17 15:10:21 CEST 2012
On 17 July 2012 at 07:41, Smith, Dale wrote:
| Hi all,
| I had the "long long unsigned int" problem today on Win x64. I passed
| --no-multiarch to R CMD build after making a package using
| Rcpp.package.skeleton. The error message in part was
| C:/R/R-2.15.1/library/Rcpp/include/Rcpp/internal/wrap.h:433:11: error:
| invalid conversion from 'long long unsigned int' to 'SEXP'
| make: *** [stdVector.o] Error 1
Right. I think it actually only bites on 32bit, but as R defaults to 32 and
64 on Windows now, it is a binding constraint/
| I resolved the problem using
| PKG_CXXFLAGS = "-std=c++0x"
| in my Makevars files.
| gcc 4.6.3 (from Rtools215) apparently doesn't support "c++11". Based on
Correct. I may have been sloppy in some posts here.
The main story is
-- C++ itself does not have 'long long' and 'unsigned long long' as per the
older 2003 standard
-- yet older g++ release silently supported it
-- but newer g++ releases got stricter and require explicit switching of
the new / upcoming / ratified standard
| the list traffic I've seen, I suspect c++0x is not supported by CRAN,
| but I haven't looked into it, so YMMV.
Correct. We cannot use -std=c++0x in uploads to CRAN (yet, and/or for the
next few years).
I suspect that g++ 4.8, or maybe 4.9, may make some of this standard and by
then we're fine.
Until then, feel free to use this on in-house code but not on uploads to
| Dale Smith, Ph.D.
| Senior Financial Quantitative Analyst
| Risk & Compliance
| 107 Technology Park
| Norcross, GA 30092
| Office: 678-375-5315
| Mail: dale.smith at fiserv.com
| Rcpp-devel mailing list
| Rcpp-devel at lists.r-forge.r-project.org
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
More information about the Rcpp-devel