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 lookup
It 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
tlum...@u.washington.edu University of Washington, Seattle
______________________________________________
R-help@r-project.org 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.