[Haskell-cafe] Wrapping a C++ library

Arjun Comar nrujac at gmail.com
Mon Jan 26 21:27:32 UTC 2015


Richard,
If you create a straight C header that's able to call into the C++ library
then what you're trying to do will work. This is the standard (though
frustrating) approach to using C++ libraries within Haskell. I can send you
an example cabal file for building the Haskell code against the C headers
and archives if you'd like. There isn't much more to it than what you're
already doing though. The key is that the headers have to be pure C and you
have to force cabal to build the C code with g++ (since the implementing .c
files will necessarily make C++ calls).

Thanks,
Arjun

On Mon, Jan 26, 2015 at 11:29 AM, Donn Cave <donn at avvanta.com> wrote:

> Quoth Richard Lewis <richard.lewis at gold.ac.uk>,
> ...
> > There's a specific question here which goes something like: how do I
> > get hsc2hs to compile code that uses STL headers?
>
> For me, that would be the first thing to fix.  Use #ifdef __cplusplus,
> or just reorganize, so the hsc2hs-generated files are just C.
> You wrote your wrapper library for the C++ part, and if the callers
> need to be C++ it kind of defeats the purpose.
>
> From there, I would have guessed "extra-libraries: stdc++" would do it,
> (assuming you have also arranged to get your wrapper library in there),
> but I'm no cabal expert.  I use C++ more or less like you're doing, so
> there's hope, but I haven't gotten around to the cabal part of the
> exercise.
>
>         Donn
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20150126/c812ee25/attachment.html>


More information about the Haskell-Cafe mailing list