[Rcpp-devel] undefined symbol: _ZTVN10__cxxabiv120__si_class_type_infoE (on Ubuntu but not on Mac OS X)

Dirk Eddelbuettel edd at debian.org
Tue Jul 7 01:20:54 CEST 2015

On 6 July 2015 at 17:24, Peng Yu wrote:
| BTW, I checked all the packages that depend on Rcpp one way or
| another. All the packages which use FORTRAN only have .f files but not
| .f90 files. Is it an coincident or it is known that R does not support
| .f90 well?

A _15 second_ search of Writing R Extensions reveals this in Section 1.1.5:

      The sources and headers for the compiled code are in 'src', plus
   optionally a file 'Makevars' or 'Makefile'.  When a package is installed
   using 'R CMD INSTALL', 'make' is used to control compilation and linking
   into a shared object for loading into R. There are default 'make'
   variables and rules for this (determined when R is configured and
   recorded in 'R_HOME/etcR_ARCH/Makeconf'), providing support for C, C++,
   FORTRAN 77, Fortran 9x(5), Objective C and Objective C++(6) with
   associated extensions '.c', '.cc' or '.cpp', '.f', '.f90' or '.f95',
   '.m', and '.mm', respectively.  We recommend using '.h' for headers,
   also for C++(7) or Fortran 9x include files.  (Use of extension '.C' for
   C++ is no longer supported.)  Files in the 'src' directory should not be
   hidden (start with a dot), and hidden files will under some versions of
   R be ignored.
      It is not portable (and may not be possible at all) to mix all these
   languages in a single package, and we do not support using both C++ and
   Fortran 9x.  Because R itself uses it, we know that C and FORTRAN 77 can
   be used together and mixing C and C++ seems to be widely successful.

Note the second paragraph:  So f90 and C++ do NOT go together.


http://dirk.eddelbuettel.com | @eddelbuettel | edd at debian.org

More information about the Rcpp-devel mailing list