6

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

> $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,它就可以工作。但是,我写了一个小测试脚本:

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 位。

补充:我现在也按照A Haskell Adventure In Windows推荐的方式进行了尝试,结果也一样。

4

2 回答 2

1

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

于 2013-11-05T15:00:40.393 回答
1

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

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

这对我的 FTGL 有帮助 - 见这里

于 2013-04-15T01:03:40.230 回答