On Mon, 1 Jun 2009, cls59 wrote:
Giura Gauss wrote:Hi, can anybody point me to a package with C++ code that call Fortran subroutines? I am trying to do the same thing but we scarce success. Error in dyn.load("utils.so") : unable to load shared library 'utils.so': dlopen(utils.so, 6): Symbol not found: _robcovf Referenced from: utils.so Expected in: dynamic lookupIt seems like you have a problem with function names which is a common obstacle when interfacing C and Fortran. What usually happens is that a trailing underscore gets added to fortran function names when they are compiled. For example, consider a fortran subroutine declared as: subroutine gaussQuad ( a, b, f1, f2 ) Since an underscore usually gets added and Fortran passes variables by reference, the above subroutine would be seen by C as: void gaussQuad_( a&, b&, f1&, f2& );
Because this varies from compiler to compiler, R provides macros that do the correct name mangling, so it would be void F77_CALL(*a, *b, *f1, *f2) in C (not a&, b&, etc, which are C++ syntax). -thomas Thomas Lumley Assoc. Professor, Biostatistics [email protected] University of Washington, Seattle ______________________________________________ [email protected] mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.

