From edd at debian.org  Mon Aug 29 20:43:58 2011
From: edd at debian.org (Dirk Eddelbuettel)
Date: Mon, 29 Aug 2011 13:43:58 -0500
Subject: [Rd] R-loadable dll with minGW-compiled linked library
In-Reply-To: <CACqXi8+Ep5D1oAWwobOqeLEpbCiiNFgpbgfBNu4koUjwCAcdpw@mail.gmail.com>
References: <CACqXi8+Ep5D1oAWwobOqeLEpbCiiNFgpbgfBNu4koUjwCAcdpw@mail.gmail.com>
Message-ID: <20059.56814.828413.374600@max.nulle.part>


On 30 August 2011 at 02:25, Ilana Lichtenstein wrote:
| The tutorials on the web regarding creation of C++ dlls do not discuss
| linking to libraries.

Well, there are working examples among the 3200+ CRAN packages...

| Thus my two questions are:
| (1) Does anyone know how to compile a C++ program which links to a library,
| which dyn.load will accept? What flags are required in the R makeconf? How
| do you link in a library to the dll?  What flags must I compile the libdai
| and boost libraries with?

Sure. I am as self-centered as the next guy so I welcome you to look at my
RQuantLib project (on CRAN and R-Forge) which has been doing that for a
decade -- and the QuantLib project / library itself uses parts of Boost. 

Moreover, Rcpp is a package whose goal it is to make C++ interchange from /
to R a little less painful.  There are now three dozen packages on CRAN using
it (see the 'reverse depends' via the Rcpp CRAN page) and several of these
link to other external libraries.

[ All that said, I suspect you need to build everything with MinGW. You
certainly cannot mix object code generated via compilers from the visual
whichever suites (as C++ function headers get mangled) and I am pretty
certain that Cygwin's g++ may be doomed for the same reason. I'd be happy to
be convinced otherwise; this would be something worth documenting better. ]

| (2) If my interfacing issue cannot be resolved, does anyone know any tools
| that interface to R that do machine learning belief propagation?

Did you look at the machine learning Task View ?

Dirk


-- 
Two new Rcpp master classes for R and C++ integration scheduled for 
New York (Sep 24) and San Francisco (Oct 8), more details are at
http://dirk.eddelbuettel.com/blog/2011/08/04#rcpp_classes_2011-09_and_2011-10
http://www.revolutionanalytics.com/products/training/public/rcpp-master-class.php



[Rd] R-loadable dll with minGW-compiled linked library
Dirk Eddelbuettel