[Rcpp-devel] Error installing 1.0.13

Dirk Eddelbuettel edd at debian.org
Thu Jul 25 01:57:40 CEST 2024


On 24 July 2024 at 19:21, Avraham Adler wrote:
| I get the following error when trying to install.
| 
| Thanks,
| 
| Avi
| 
| * installing *source* package 'Rcpp' ...
| ** package 'Rcpp' successfully unpacked and MD5 sums checked
| ** using staged installation
| ** libs
| using C++ compiler: 'G__~1.EXE (GCC) 13.2.0'
| g++ -std=gnu++17  -I"C:/R/RCurrent/R-devel/include" -DNDEBUG
| -I../inst/include/
| -I"C:/rtools44/x86_64-w64-mingw32.static.posix/include"     -O3
| -march=native -pipe -mno-rtm -Wa,-muse-unaligned-vector-move -c
| api.cpp -o api.o
| g++ -std=gnu++17  -I"C:/R/RCurrent/R-devel/include" -DNDEBUG
| -I../inst/include/
| -I"C:/rtools44/x86_64-w64-mingw32.static.posix/include"     -O3
| -march=native -pipe -mno-rtm -Wa,-muse-unaligned-vector-move -c
| attributes.cpp -o attributes.o
| g++ -std=gnu++17  -I"C:/R/RCurrent/R-devel/include" -DNDEBUG
| -I../inst/include/
| -I"C:/rtools44/x86_64-w64-mingw32.static.posix/include"     -O3
| -march=native -pipe -mno-rtm -Wa,-muse-unaligned-vector-move -c
| barrier.cpp -o barrier.o
| In file included from barrier.cpp:31:
| barrier.cpp: In function 'SEXPREC** get_vector_ptr(SEXP)':
| ../inst/include/Rcpp/r/compat.h:34:26: error: 'VECTOR_PTR_RO' was not
| declared in this scope; did you mean 'VECTOR_PTR'?
|    34 | # define RCPP_VECTOR_PTR VECTOR_PTR_RO
|       |                          ^~~~~~~~~~~~~
| barrier.cpp:74:30: note: in expansion of macro 'RCPP_VECTOR_PTR'
|    74 |     return const_cast<SEXP*>(RCPP_VECTOR_PTR(x));
|                                          // #nocov end
|       |                              ^~~~~~~~~~~~~~~
| make: *** [C:/R/RCurrent/R-devel/etc/x64/Makeconf:296: barrier.o] Error 1
| ERROR: compilation failed for package 'Rcpp'

That's not a good outcome and a little odd.

We can see that CRAN has Windows binaries, and, upon upload, of course also
first checked with default Windows and Linux build servers by Uwe and Kurt.

As for the error, the file compat.h is pretty trivial and just contains a
version comparison to then define the replacement wrapper. Line 34 _defines_
a string rather than using. So I am puzzled.  Maybe something
is off with your R version?  You often run r-devel, don't you?

In any event, if your R is newer than 4.4.2 maybe (for now) replace the
conditional logic in compat.h with just the defines ie

  # define RCPP_STRING_PTR STRING_PTR_RO

  # define RCPP_VECTOR_PTR VECTOR_PTR_RO

and use that?

Dirk

-- 
dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org


More information about the Rcpp-devel mailing list