[R] .C() and C++ name mangling

Peter Dimitrov dimitrov at gnf.org
Wed Oct 2 21:11:35 CEST 2002


Enclose the interface function, in your case gaRemin with extern "C"
statement like this:

extern "C"
{

	gaRemin(int *, float *, float *, int *, float *, float *, 
		float *, float *, float *) {
		...
	}

}

Also, look at the "Writing R Extensions" manual in R help, specifically
the chapter "System and foreign language interfaces", section
"Interfacing C++ code", for more information.

peter

On Wed, 2002-10-02 at 10:06, Andy Jacobson wrote:
> Howdy,
> 
>         I'm working with some external code written in C++, which I
>         would like to call via dyn.load() and .C() from R.  The
>         function prototype looks like:
> 
>         gaRemin(int *, float *, float *, int *, float *, float *, 
>                 float *, float *, float *)
> 
>         but to call this function from R using .C() I have had to use
>         the mangled version of this function name,
> 
>         gaRemin__FPiPfT1T0T1N41
> 
>         Is using the mangled name my best option, or is there some way
>         that R knows to interpret unmangled function names from C++
>         shared library objects?
> 
>         I'm concerned about portability of the resultant code in the
>         case that name-mangling is handled differently from platform
>         to platform.
> 
>         This is Linux, Redhat 7.2 with g++-2.96.
> 
>         Thanks for any help you can offer,
> 
>                 Andy
> 
> -- 
> Andy Jacobson
> 
> arj at gfdl.gov
> 
> Program in Atmospheric and Oceanic Sciences
> Sayre Hall, Forrestal Campus
> Princeton University
> PO Box CN710 Princeton, NJ 08544-0710 USA
> 
> Tel: 609/258-5260  Fax: 609/258-2850
> -.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
> r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
> Send "info", "help", or "[un]subscribe"
> (in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
> _._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list