[Rcpp-devel] correct way of making custom as and wrap functions available to other packages
krthornt at uci.edu
Fri Jul 17 16:56:01 CEST 2015
A good guess is that the as/wrap definitions in wrappers.h are the culprit (https://github.com/dahtah/imager/blob/master/inst/include/wrappers.h <https://github.com/dahtah/imager/blob/master/inst/include/wrappers.h>). Try declaring them as inline, or separating the definition from the declaration.
> On Jul 17, 2015, at 7:32 AM, Simon Barthelmé <simon.barthelme at gipsa-lab.fr> wrote:
> Dear list,
> For a package I'm developing (https://github.com/dahtah/imager/) I had to write custom "as" and "wrap" functions for third-party classes. I'd like to make these wrappers accessible to other developers via inline C++ as well as LinkingTo directives (so that they can be used in other packages).
> So far I've only managed the former: I have a header file in inst/include, called "wrappers.h", that contains the full implementations of my custom as and wrap functions. I've written a custom inline plugin and everything works fine. However, LinkingTo doesn't work: wrappers.h gets included in multiple object files and I get linking errors (the linker complains about multiple declarations of "as" and "wrap").
> I understand RcppArmadillo manages to get around the problem but I can't figure out how. What's the correct way of doing this? Is there a way of making as and wrap inline functions so that it's safe to have header-only implementations?
> Simon Barthelme
> Rcpp-devel mailing list
> Rcpp-devel at lists.r-forge.r-project.org
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the Rcpp-devel