link a shared library of a r-package
On Oct 13, 2009, at 12:19 , Christoph Hofer wrote:
Dear list I wrote some c-code and would like to link it with the shared library RandomFields.so of the RandomFields package.
That's something you cannot do in general, because installed packages are just shared objects, not necessarily dynamic libraries (in fact some older versions of R used bundles instead). R provides a facility for packages to expose their C-level code via R_RegisterCCallable and your package can use such entry points using R_GetCCallable. However, to my knowledge RandomForests doesn't export its entry point, so you cannot them from your C code. That is usually with a good reason, because packages are free to change their C-level entry points at any point without notice rendering your package useless in the process. Your options are either to talk to the authors if some general abstraction is reasonable or to use the exported entry points from R (.C/.Call) or to take and modify their code if the license allows that. Cheers, Simon
I tried it in the following way gcc -lRandomFields -L/directory of RandomFields.so -o prog my_c_code.c and I got the following error ld: library not found for -lRandomFields collect2: ld returned 1 exit status Thus my question: Is it possible to link a shared library (created inside an R-package) with so c-code. I am not sure if this is the right list but I am working with Mac OS X 10.6. Regards Christoph
_______________________________________________ R-SIG-Mac mailing list R-SIG-Mac at stat.math.ethz.ch https://stat.ethz.ch/mailman/listinfo/r-sig-mac