2013-04-14 14 views
6

Finalmente sono riuscito a installare Haskell SDL bindings su Windows. Utilizzo:SDL Haskell: impossibile trovare mingw32.dll

> $env:Path += ";C:\SDL;C:\SDL\bin;C:\SDL\include;C:\SDL\lib" 
> cabal install SDL --extra-include-dirs="C:\SDL\include" --extra-lib-dirs="C:\SDL\lib" 

Questo funziona, purché Cygwin sia installato per lo script di configurazione. Tuttavia, ho scritto un piccolo script di test:

import Graphics.UI.SDL as SDL 
import Control.Monad (void) 
import Control.Exception (bracket_) 

main = bracket_ (SDL.init [InitEverything]) quit $ do 
    screen <- setVideoMode 800 600 0 [] 
    SDL.flip screen 
    void $ waitEvent 

Cercando questo ora mi dà questo messaggio di errore:

*Main> :main 
Loading package SDL-0.6.4 ... <interactive>: mingw32: Cannot find specified module. 
can't load .so/.DLL for: mingw32.dll (addDLL: could not load DLL) 

Ora Cercavo che mingw32.dll ma non ho potuto trovare sul mio computer, anche se ho installato MinGW32. Qualcuno ha avuto qualche esperienza qui?

Utilizzo di SDL-0.6.4, GHC 7.4.2 da Haskell Platform 2012.4.0.0. Windows 7 a 64 bit.

ADDITION: Ora ho provato anche nel modo consigliato A Haskell Adventure In Windows, e questo ha lo stesso risultato.

risposta

1

Potrebbe trattarsi di un problema 64 vs 32 bit. Prova la copia che .dll a:

  • versione a 64 bit di Windows: copiare in C: \ windows \ syswow64
  • versione a 32 bit di Windows: copiare c: \ windows \ system32

That helped me with FTGL - see here

+0

Ma non c'è 'mingw32.dll 'in nessun punto del mio sistema. Googling che non ha portato risultati. Non penso che esista un 'mingw32.dll'. – Lanbo

+0

@LambdaDusk, hai installato mingw, msys o msysgit? Se sì, potrebbero interferire con la configurazione di build del tuo cygwin – sinelaw

+0

@LambdaDusk, in realtà ora ho appena notato che le istruzioni che stai usando sono basate su una build mingw delle librerie dev sdl. Dovresti rimuovere cygwin e installare mingw, oppure rimuovere il sdl basato su mingw e installare uno cygwin, oppure crearlo da solo (http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

1

Ho usato MSYS/MinGW per la compilazione e stavo avendo lo stesso identico problema. Dopo aver trafficato ho scoperto che la bandiera -lmingw32 (nel file sdl-config) è in uso, e questo sembra implicare mingw32.dll. Semplicemente rimuovo questo flag e tutto ha funzionato.