2013-04-14 19 views
6

W końcu udało mi się zainstalować Haskell SDL bindings w systemie Windows. Używanie tego:Haskell SDL: Nie można znaleźć 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" 

Działa tak długo, jak Cygwin jest zainstalowany dla skryptu configure. Jednak napisałem mały skrypt testowy:

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 

Trying to teraz daje mi ten komunikat o błędzie:

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

Teraz szukałem tego mingw32.dll, ale nie mogłem go znaleźć na moim komputerze, chociaż mam zainstalowany MinGW32. Czy ktoś tu miał jakieś doświadczenie?

Używanie SDL-0.6.4, GHC 7.4.2 od Haskell Platform 2012.4.0.0. Windows 7 64-bitowy.

ADDITION: Teraz wypróbowałem go tak, jak zaleca A Haskell Adventure In Windows, a to ma taki sam efekt.

Odpowiedz

1

Może to być problem 64 lub 32-bitowy. Spróbuj skopiować że .dll do:

  • wersji 64-bitowej wersji systemu Windows: copy c: \ windows \ syswow64
  • 32-bitowa wersja systemu Windows: skopiuj do C: \ Windows \ system32

That helped me with FTGL - see here

+0

Ale w moim systemie nie ma "mingw32.dll". Googling, który również nie przyniósł rezultatów. Nie sądzę, że "mingw32.dll" istnieje w ogóle. – Lanbo

+0

@ lambdaDusk, czy masz zainstalowane mingw, msys lub msysgit? Jeśli tak, mogą ingerować w konfigurację kompilacji cygwin – sinelaw

+0

@LambdaDusk, teraz właśnie zauważyłem, że instrukcje, których używasz, są oparte na kompilacji mingw z bibliotek SDL dev. Powinieneś usunąć cygwin i zainstalować mingw zamiast tego, lub usunąć sdl oparty na mingw i zainstalować cygwin jeden lub zbudować go sam (http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

1

Użyłem MSYS/MinGW do zbudowania i miałem dokładnie ten sam problem. Po błądzeniu odkryłem, że flaga -lmingw32 (w pliku sdl-config) jest używana, co wydaje się implikować mingw32.dll. Prosto usunąłem tę flagę i wszystko działało.

Powiązane problemy