Hi, I am writing a function in C that is meant to be called by R. In the C function, I used a gsl function gsl_stats_mean. The code is as simple as below
void gsl(double *m, int *dim){ int r, c; r = dim[0]; c = dim[1]; double mean = gsl_stats_mean(&m[0], 1, r); Rprintf("mean = %f\n", mean); } The C code is succesfully compiled and the output is as follows. $ R CMD SHLIB hello.c WARNING: ignoring environment value of R_HOME gcc -std=gnu99 -I/usr/local/R-2.8.1/lib64/R/include -I/usr/local/include -fpic -g -O2 -c hello.c -o hello.o gcc -std=gnu99 -shared -L/usr/local/lib64 -o hello.so hello.o However, as I tried to load it in R libPath = "~/ccode" dyn.load(file.path(libPath, "hello.so")) I got an error message in R Error in dyn.load(file.path(libPath, "hello.so")) : unable to load shared library '~/ccode/hello.so': ~/ccode/hello.so: undefined symbol: gsl_stats_mean I do have gsl installed and the gls lib folder has both libgsl.a and libgsl.so. How I can link the C code with gsl library from R CMD SHLIB? Any suggestions would be appreciated. Jeff ______________________________________________ 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.