[Rcpp-devel] correct way of making custom as and wrap functions available to other packages

Kevin Thornton 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.

—Kevin

> 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?
> 
> Thanks!
> 
> Simon Barthelme
> 
> _______________________________________________
> 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


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.r-forge.r-project.org/pipermail/rcpp-devel/attachments/20150717/dc925d8c/attachment.html>


More information about the Rcpp-devel mailing list