Haskell SDL:找不到mingw32.dll

时间:2013-04-14 07:35:03

标签: haskell sdl cabal mingw32

我终于在Windows上安装了Haskell SDL bindings。使用这个:

> $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.4中的GHC 7.4.2Haskell Platform 2012.4.0.0。 Windows 7 64位。

ADDITION :我现在也按照A Haskell Adventure In Windows推荐的方式尝试过,结果非常相似。

2 个答案:

答案 0 :(得分:1)

这可能是64位与32位的问题。尝试将.dll复制到:

  • 64位版本的Windows:复制到c:\ windows \ syswow64
  • 32位版本的Windows:复制到c:\ windows \ system32

That helped me with FTGL - see here

答案 1 :(得分:1)

我使用MSYS / MinGW构建,我遇到了完全相同的问题。摆弄后我发现正在使用标志-lmingw32(在文件sdl-config中),这似乎意味着mingw32.dll。我简单地删除了这个标记,一切正常。