【问题标题】:Haskell SDL: Can't find mingw32.dllHaskell SDL:找不到 mingw32.dll
【发布时间】:2013-04-06 11:34:27
【问题描述】:

我终于在 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"

只要为配置脚本安装了 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。有人在这里有过经验吗?

使用来自Haskell Platform 2012.4.0.0SDL-0.6.4GHC 7.4.2。 Windows 7 64 位。

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

【问题讨论】:

    标签: haskell sdl cabal mingw32


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

      That helped me with FTGL - see here

      【讨论】:

      • 但是我的系统上没有mingw32.dll。谷歌搜索也没有带来任何结果。我认为mingw32.dll 根本不存在。
      • @LambdaDusk,你安装了 mingw、msys 或 msysgit 吗?如果是,它们可能会干扰您的 cygwin 的构建设置
      • @LambdaDusk 实际上现在我刚刚注意到您使用的指令是基于 sdl 开发库的 mingw 构建。您应该删除 cygwin 并安装 mingw,或者删除基于 mingw 的 sdl 并安装 cygwin ,或者自己构建 (libsdl.org/extras/win32/cygwin/README.txt)
      • 我将不得不做第二个选项,因为没有 cygwin 我无法安装 haskell SDL。
      • @LambdaDusk,你链接的指令表明 no cygwin。我错过了什么吗?为什么需要 cygwin?
      猜你喜欢
      • 2015-09-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-31
      相关资源
      最近更新 更多