2013-04-14 37 views
6

WindowsにHaskell SDL bindingsをインストールするようにしました。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" 

これは、configureスクリプト用にCygwinがインストールされている場合に限り動作します。しかし、私は小さなテストスクリプトを書いた:

これをしようと
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.4GHC 7.4.2Haskell Platform 2012.4.0.0からです。 Windows 7 64ビット。

追加:私は今もA Haskell Adventure In Windowsの方法で試してみましたが、それと全く同じ結果があります。

答えて

1

64ビットと32ビットの問題が考えられます。 .dllをコピーしてみてください:Windowsのの

  • 64ビット版:Cにコピー:Cへのコピー:\ WINDOWS \ system32に
のWindowsのSYSWOW64
  • 32ビット版\ \ WINDOWS

    That helped me with FTGL - see here

  • +0

    しかし私のシステムのどこにでも 'mingw32.dll'はありません。グーグルでも結果は得られなかった。私は 'mingw32.dll'が全く存在しないと思います。 – Lanbo

    +0

    @LambdaDusk、mingw、msys、msysgitがインストールされていますか?もしそうなら、cygwinのビルド設定に干渉している可能性があります。 – sinelaw

    +0

    @LambdaDusk実際には、使用している指示がsdl dev libsのmingwビルドに基づいていることに気づいただけです。 cygwinを削除してmingwをインストールするか、mingwベースのsdlを削除してcygwinをインストールするか、自分でビルドしてください(http://www.libsdl.org/extras/win32/cygwin/README.txt) – sinelaw

    1

    MSYS/MinGWを使用してビルドしましたが、まったく同じ問題がありました。周りをじっと見てから、フラグ-lmingw32(ファイルsdl-config内)が使用されていることがわかりました。これはmingw32.dllを暗示しているようです。私はこのフラグを削除するだけで、すべてが機能しました。

    関連する問題