[Rcpp-devel] Symbol not found when including an external library
szehnder at uni-bonn.de
szehnder at uni-bonn.de
Thu Sep 5 09:05:54 CEST 2013
Short question at this point of the discussion: Is it possible to use useDynLoad in the NAMESPACE file to load in addition to a dynamic library of nlopt?
Best
Simon
Gesendet über den BlackBerry® Service von E-Plus.
-----Original Message-----
From: Dirk Eddelbuettel <edd at debian.org>
Sender: rcpp-devel-bounces at lists.r-forge.r-project.orgDate: Wed, 4 Sep 2013 21:38:02
To: Steve Jaffe<sjaffe at riskspan.com>
Cc: rcpp-devel at lists.r-forge.r-project.org<rcpp-devel at lists.r-forge.r-project.org>
Subject: Re: [Rcpp-devel] Symbol not found when including an external library
On 4 September 2013 at 21:08, Steve Jaffe wrote:
| The simplest solution is to build nlopt as a shared library and link to
| that. See http://ab-ini tio.mit.edu/wiki/index.php/NLopt_Installation#Shared_libraries
Please see the subsequent posts by Doug -- we already have that.
| (I may be wrong, but I don't think it's always possible to link a static
| library into a shared library regardless of how the static library was build
| (think: PIC) and on all platforms.
If memory serves, you need -fPIC and can just 'glue' the object files into a
static libfoo.a via the ar command. Been there, done that, but don't have an
example handy.
| This is why I say replacing the static library with a shared library is the
| simplest solution -- we know it will work.)
I fear it is far from that easy as you also need ldd to play along, ie dll
needs to be told where the library is.
What R does is (AFAICR) not identical because it manages dlopen() itself --
which is why we have libs/foo.so rather than a standard libfoo.so (and also
why Rcpp ships two libraries but I digress).
It is _all_ hairy. The easiest approaches are, in my view,
-- to rely on a system-wide library
-- possibly rely on another build (hence Doug's post about other nlopt
packages) provided they built the library in a way we can use
-- punt and place all files in src/ which is what I convinced the authors /
maintainers of phylobase to do -- and then the multi-arch builds "just
work" as R know how to the The Right Thing (TM)
Very easy to get pulled into a fight against wind mills here. Resist, if you can.
Dirk
--
Dirk Eddelbuettel | edd at debian.org | http://dirk.eddelbuettel.com
_______________________________________________
Rcpp-devel mailing list
Rcpp-devel at lists.r-forge.r-project.org
https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/rcpp-devel
More information about the Rcpp-devel
mailing list