[Haskell-cafe] Re: Compiling a shared library on MacOS X

Jean-Denis Koeck jdkoeck at gmail.com
Sun Jan 3 11:33:33 EST 2010


According to the manual, I have to use the -shared flag to compile a
library.
But I get the following error:

link: GHC not built to link this way: LinkDynLib

Guess I have to recompile ghc !

2010/1/3 Jean-Denis Koeck <jdkoeck at gmail.com>

> Hello,
> I'm using the following cabal file to build a shared library with ghc:
>
> Build-Type:            Simple
> Executable libmylibrary.dll
>   If os(windows)
>     CPP-Options:        -DWIN32
>   Extensions:           ForeignFunctionInterface
>   Build-Depends:        ...
>   Main-Is:              libmylibrary.hs
>   Ghc-Options:          -W --make -no-hs-main -optl-shared -optl-s -O2
>
> The resulting library is called from a C++ graphical user interface (using
> Qt),
> which worked great so far on Windows and Linux.
>
> However, the compilation fails on MacOS X:
>
> Undefined symbols:
>   "_ZCMain_main_closure", referenced from:
>       _ZCMain_main_closure$non_lazy_ptr in libHSrts.a(Main.o)
>   "___stginit_ZCMain", referenced from:
>       ___stginit_ZCMain$non_lazy_ptr in libHSrts.a(Main.o)
> ld: symbol(s) not found
> collect2: ld returned 1 exit status
>
> I don't know much about shared libraries, even less about them on MacOS X
> :(
> Any idea ?
>
> Jean-Denis Koeck
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20100103/ffeb2e4b/attachment.html


More information about the Haskell-Cafe mailing list