2013-04-14 4 views
6

Ich habe es endlich geschafft, Haskell SDL bindings unter Windows zu installieren. Verwenden Sie dies:Haskell SDL: Kann mingw32.dll nicht finden

Dies funktioniert, solange Cygwin für das Konfigurationsskript installiert ist. Allerdings habe ich ein kleines Testskript:

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 

dies jetzt versucht, gibt mir diese Fehlermeldung:

*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) 

Nun war ich für diese mingw32.dll suchen, aber ich konnte es nicht auf meinem Computer finden, obwohl ich MinGW32 installiert habe. Hat jemand hier irgendwelche Erfahrungen gemacht?

Mit SDL-0.6.4, GHC 7.4.2 von Haskell Platform 2012.4.0.0. Windows 7 64-Bit.

ZUSATZ: Ich habe es jetzt auch in der Art und Weise versucht A Haskell Adventure In Windows, und das hat das gleiche Ergebnis.

Antwort

1

Es kann ein 64 gegen 32 Bit Problem sein. Versuchen Sie das Kopieren, die DLL zu:

  • 64-Bit-Version von Windows: Kopieren c: \ windows \ syswow64
  • 32-Bit-Version von Windows: Kopieren c: \ windows \ system32

That helped me with FTGL - see here

+0

Aber es gibt keine "mingw32.dll" irgendwo auf meinem System. Googeln brachte auch keine Ergebnisse. Ich glaube nicht, dass überhaupt eine "mingw32.dll" existiert. – Lanbo

+0

@LambdaDusk, hast du mingw, msys oder msysgit installiert? Wenn ja, stören sie möglicherweise das Build-Setup deines Cygwins – sinelaw

+0

@LambdaDusk jetzt habe ich gerade bemerkt, dass die Anweisungen, die du verwendest, auf einem Mingw-Build der SDL-Dev-Bibliotheken basieren. Sie sollten entweder cygwin entfernen und stattdessen mingw installieren oder das mingw-basierte sdl entfernen und ein cygwin installieren oder es selbst erstellen (http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

1

Ich habe MSYS/MinGW zu bauen, und ich hatte genau das gleiche Problem. Nach dem Herumspielen fand ich heraus, dass die Flagge -lmingw32 (in der Datei sdl-config) verwendet wird, und dies scheint mingw32.dll zu implizieren. Ich entferne einfach diese Markierung, und alles hat funktioniert.