2013-04-14 1 views
6

Я, наконец, сделал это, чтобы установить Haskell SDL bindings на Windows. Используя это:Haskell SDL: Не удается найти 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" 

Это работает, пока Cygwin установлен для скрипта configure. Тем не менее, я написал крошечную тестовый сценарий:

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 

Попытка это теперь дает мне сообщение об ошибке:

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

Теперь я искал для этого mingw32.dll, но я не мог найти его на моем компьютере, хотя у меня есть MinGW32. У кого-нибудь есть опыт? (SDL-0.6.4, GHC 7.4.2 от Haskell Platform 2012.4.0.0. Windows 7 64-бит.

ДОПОЛНЕНИЕ: Я также попробовал это на пути A Haskell Adventure In Windows рекомендует, и это имеет тот же результат.

ответ

1

Это может быть проблема 64 против 32 бит. Попробуйте копирование, что .dll на:

  • 64-разрядной версии Windows: скопировать в C: \ Windows \ syswow64
  • 32-разрядная версия Windows: скопировать в C: \ WINDOWS \ system32

That helped me with FTGL - see here

+0

Но в моей системе нет 'mingw32.dll'. Googling также не принес результатов. Я не думаю, что 'mingw32.dll' существует вообще. – Lanbo

+0

@LambdaDusk, у вас установлены mingw, msys или msysgit? Если да, они могут мешать настройке сборки cygwin – sinelaw

+0

@LambdaDusk на самом деле теперь я только заметил, что инструкции, которые вы используете, основаны на промежуточной сборке sdl dev libs. Вы должны либо удалить cygwin, либо установить mingw вместо этого, либо удалить sdl на основе mingw и установить cygwin, либо создать его самостоятельно (http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

1

Я использовал MSYS/MinGW для сборки, и у меня была такая же проблема. После прокрутки я обнаружил, что используется флаг -lmingw32 (в файле sdl-config), и это, по-видимому, подразумевает mingw32.dll. Я просто удаляю этот флажок, и все сработало.