[R] R-functions in C-Code

From: Olaf Schenk <olaf.schenk_at_unibas.ch>
Date: Mon 31 Oct 2005 - 20:26:19 EST


Dear R users,

I would like to use several R functions from a C-code and I have read the "Introduction to the .C Interface to R". Unfortunately, my shared library with the C-code works only in cases where I use R-routines that are defined Rmath.h, eg.



less test.c:
#include <R.h>
#include <Rinternals.h>
#include <Rmath.h>
void test(int *nrows, SEXP init,SEXP fac1, SEXP typeordi, SEXP bgratio) {

        double sum = dnorm(1.0/1, 0, 1, 0); }

Compiling and building shared library:

   gcc -I/usr/lib64/R/include -fPIC -O2 -c test.o test.c    gcc -shared -L/usr/local/lib -o test.so test.o -L/usr/lib64/R/lib -lR Calling R and loading test.so works fine:

   >dyn.load("test.so")
   >


Now, I would like to use other R functions e.g. the mean function from the base package:



#include <R.h>
#include <Rinternals.h>
#include <Rmath.h>
void test(int *nrows, SEXP init,SEXP fac1, SEXP typeordi, SEXP bgratio) {

        double sum = mean(1.0);
}

Compiling and building shared library:

   gcc -I/usr/lib64/R/include -fPIC -O2 -c test.o test.c    gcc -shared -L/usr/local/lib -o test.so test.o -L/usr/lib64/R/lib -lR

Calling R and loading test.so results in an error:

   > dyn.load("test.so")
   Error in dyn.load(x, as.logical(local), as.logical(now)) :

        unable to load shared library '/home/obc/test.so':

Any hint is welcome.

Olaf Schenk



R-help@stat.math.ethz.ch mailing list
https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Mon Oct 31 20:30:57 2005

This archive was generated by hypermail 2.1.8 : Fri 03 Mar 2006 - 03:40:53 EST