Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

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

5 views
Skip to first unread message

Jean-Denis Koeck

unread,
Jan 3, 2010, 9:35:41 AM1/3/10
to haskel...@haskell.org
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

Jean-Denis Koeck

unread,
Jan 3, 2010, 11:39:42 AM1/3/10
to haskel...@haskell.org
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 <jdk...@gmail.com>

Brandon S. Allbery KF8NH

unread,
Jan 3, 2010, 6:08:39 PM1/3/10
to Jean-Denis Koeck, haskel...@haskell.org
On Jan 3, 2010, at 09:28 , Jean-Denis Koeck wrote:
> I'm using the following cabal file to build a shared library with ghc:


I don't know if any released GHC knows how to do that yet. In any
case it's still experimental.

--
brandon s. allbery [solaris,freebsd,perl,pugs,haskell] all...@kf8nh.com
system administrator [openafs,heimdal,too many hats] all...@ece.cmu.edu
electrical and computer engineering, carnegie mellon university KF8NH


PGP.sig

Ivan Miljenovic

unread,
Jan 3, 2010, 6:37:03 PM1/3/10
to Jean-Denis Koeck, haskel...@haskell.org
If I recall correctly, dynamic linking/shared library support is not
yet available for OSX, as the Industrial Haskell Group does not have
any knowledge of OSX (but is willing to pay someone who does to do the
work).

2010/1/4 Jean-Denis Koeck <jdk...@gmail.com>:

> _______________________________________________
> Haskell-Cafe mailing list
> Haskel...@haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>

--
Ivan Lazar Miljenovic
Ivan.Mi...@gmail.com
IvanMiljenovic.wordpress.com
Joan Crawford - "I, Joan Crawford, I believe in the dollar.
Everything I earn, I spend." -
http://www.brainyquote.com/quotes/authors/j/joan_crawford.html
_______________________________________________
Haskell-Cafe mailing list
Haskel...@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Chris Eidhof

unread,
Jan 4, 2010, 7:20:49 PM1/4/10
to Ivan Miljenovic, haskel...@haskell.org
I'm not sure if it is of any help, but at the haskell-wiki there's an article about how to communicate between Haskell and Objective-C using XCode: http://haskell.org/haskellwiki/Using_Haskell_in_an_Xcode_Cocoa_project

-chris

Mark Wotton

unread,
Jan 4, 2010, 7:38:28 PM1/4/10
to Ivan Miljenovic, haskel...@haskell.org
There's a patch for it in GHC HEAD by Stephen Blackheath and me, and
an accompanying patch for Cabal.

http://hackage.haskell.org/trac/ghc/ticket/3550
http://hackage.haskell.org/trac/hackage/ticket/591

has the details.

mark

--
A UNIX signature isn't a return address, it's the ASCII equivalent of a
black velvet clown painting. It's a rectangle of carets surrounding a
quote from a literary giant of weeniedom like Heinlein or Dr. Who.
-- Chris Maeda

0 new messages