[R] R and external C library " cannot open shared object file" while LD_LIBRARY_PATH is set
Pierre Lindenbaum
pierre.lindenbaum at univ-nantes.fr
Fri Jul 25 16:07:28 CEST 2014
( cross-posted on SO: http://stackoverflow.com/questions/24955829/ )
I'm building a C extension for R, this library also uses the HDF5 library.
I compiled a dynamic library (gcc flags: -fPIC -shared
-Wl,-soname,libmy.so -o ../lib/libmy.so in a 'lib' directory:
$ file /path/to/my/lib/libmy.so
/path/to/my/lib/libmy.so: ELF 64-bit LSB shared object, AMD
x86-64, version 1 (SYSV), not stripped
LD_LIBRARY_PATH is set:
$ echo $LD_LIBRARY_PATH
path/to/hdf5/lib:/path/to/my/lib
and now when I want to load my library in R from the directory
/path/to/my/src
dyn.load("libmy.so")
I get the following error:
Error in dyn.load("libmy.so") :
unable to load shared object '/path/to/my/src/libmy.so':
/path/to/my/src/libmy.so: cannot open shared object file: No
such file or directory
Execution halted
If libmy.so is moved to my current working directory (I don't want this)
mv ../lib/libmy.so ./
the library seems to be loaded but R is still missing the symbols from
the hdf5 library:
Error in dyn.load("libmy.so") :
unable to load shared object ' /path/to/my/src/libmy.so':
/path/to/my/src/libmy.so: undefined symbol: H5T_C_S1_g
Execution halted
I also tried load("my.so") instead of "libmy.so".
How can I load my dynamic library ?
Thanks
Pierre
More information about the R-help
mailing list