[R-pkg-devel] Linking external libraries in non-standard locations
Iñaki Úcar
i.ucar86 at gmail.com
Sat Jun 17 17:30:57 CEST 2017
Hi all,
After googling around for a while, I found that this is a common
problem, but still it is not clear to me how I should handle this.
I have a package A, with C++ code via Rcpp, that needs an external C++
library libB. I have a configure script that sets
PKG_CPPFLAGS=-I/path/to/B/include
PKG_LIBS=-L/path/to/B/lib -lB
in src/Makevars. Compilation and linking seem to go just fine. But then,
** testing if installed package can be loaded
Error in dyn.load(file, DLLpath = DLLpath, ...) :
unable to load shared object
'/home/xxx/R/x86_64-redhat-linux-gnu-library/3.3/A/libs/A.so':
libB.so: cannot open shared object file: No such file or directory
If I set LD_LIBRARY_PATH=/path/to/B/lib, the error above is solved and
the package is installed. But then I try to load the package with
library(A), with LD_LIBRARY_PATH still set, and the same error
reappears.
So what is the proper and more portable way of linking a external
library in a non-standard location?
Regards,
Iñaki
More information about the R-package-devel
mailing list