[Haskell-cafe] include modules in DLL? "undefined reference"

Gerold Meisinger gerold.meisinger at gmail.com
Mon Dec 6 21:32:27 CET 2010


I'm trying to compile a Windows DLL and need to include an additional module
(specifically FRP.Yampa).
I was successful with a Hello World type of DLL but when I use Yampa I get:

$ ghc -shared -o hs.dll DLLTest.o DLLTest_stub.o StartEnd.o
 Creating library file: hs.dll.a
 DLLTest.o:fake:(.text+0x46): undefined reference to
 DLLTest.o:fake:(.text+0x4d): undefined reference to
 DLLTest.o:fake:(.text+0x194): undefined reference to
 DLLTest.o:fake:(.text+0x381): undefined reference to
 DLLTest.o:fake:(.data+0x0): undefined reference to
 DLLTest.o:fake:(.data+0x4): undefined reference to
 DLLTest.o:fake:(.data+0x38): undefined reference to
 collect2: ld returned 1 exit status

How can I define the references of Yampa in the DLL?

I also tried to reinstall Yampa shared with:
$ cabal install --reinstall --enable-shared yampa
     Could not find module `Data.IORef':
       Perhaps you haven't installed the "dyn" libraries for package
       Use -v to see a list of the files searched for.

$ cabal install --reinstall --enable-shared base # :)
 Resolving dependencies...
 cabal: internal error: impossible


(StartEnd is taken from:
http://www.haskell.org/ghc//docs/latest/html/users_guide/win32-dlls.html )

 {-# LANGUAGE ForeignFunctionInterface, Arrows #-}

 module DLLTest

 embeddedSF :: Double -> Double -> Double -> IO Double
 embeddedSF v0 v1 v2 = return . last $ embed integral (v0, [(1.0, Just v1),
(1.0, Just v2)])

 foreign export ccall embeddedSF :: Double -> Double -> Double -> IO Double
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/haskell-cafe/attachments/20101206/b13c3c24/attachment-0001.htm>

More information about the Haskell-Cafe mailing list