Hello!
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 `Yampazm0zi9zi2zi3_FRPziYamp
a_integral_closure'
DLLTest.o:fake:(.text+0x4d): undefined reference to `Yampazm0zi9zi2zi3_FRPziYamp
aziVectorSpace_zdfVectorSpaceDoubleDouble_closure'
DLLTest.o:fake:(.text+0x194): undefined reference to `Yampazm0zi9zi2zi3_FRPziYam
pa_embed_closure'
DLLTest.o:fake:(.text+0x381): undefined reference to `__stginit_Yampazm0zi9zi2zi
3_FRPziYampa_'
DLLTest.o:fake:(.data+0x0): undefined reference to `Yampazm0zi9zi2zi3_FRPziYampa
_integral_closure'
DLLTest.o:fake:(.data+0x4): undefined reference to `Yampazm0zi9zi2zi3_FRPziYampa
ziVectorSpace_zdfVectorSpaceDoubleDouble_closure'
DLLTest.o:fake:(.data+0x38): undefined reference to `Yampazm0zi9zi2zi3_FRPziYamp
a_embed_closure'
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 `base-3.0.3.
2'?
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 )
DLLTest.hs:
{-# 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