在Windows中SDL和Haskell的问题

3
我之前询问了在Haskell中编写游戏时要使用哪些库,得到了很好的回答,让我朝着正确的方向前进。但是我似乎无法解决与sdl绑定相关的问题。我一直在按照这个教程a haskell adventure in windows(安装部分)来制作一个简单示例。 当我尝试运行示例时,控制台会给出以下错误消息:ghci myExample.hs。
Loading package SDL-0.6.2 ... <interactive>: SDLmain: Cannot find specified module .
Can't load .so/.DLL for: SDLmain (addDLL: could not load DLL)

我在许多网页上查看,但似乎没有解决方案或帮助。

这种情况有人遇到过吗?


你把.dll文件放在和.exe文件相同的目录下了吗? - user181351
我真的不太明白。你指的是哪个 .exe 文件?ghc.exe 吗? 因为我的代码没有 .exe 文件,它是一个 .hs 文件。 很抱歉,我真的不明白。 - Illiax
在编译程序的同一目录下返回已翻译的文本。 - user181351
说到这个,如果你编译它,能工作吗?在这种情况下,在GHCi中让事情正常工作可能与仅编译可执行文件略有不同。 - C. A. McCann
1个回答

1

我认为你需要

ghci MyExample.hs -l SDLmain


只是为了确保,它应该自动加载,因为当我运行 caball info sdl 时,它显示已经安装。现在我提到这个,我看到我已经安装了0.5.9和0.6.2版本,这可能与主要问题有关吗? - Illiax
另一个问题!!sdlMain在哪里? - Illiax
@llliax 我对在Windows上使用Haskell一无所知,如果我在Linux上的话,那就是我会用的。 - alternative
@monadic -- 这在Windows上不起作用,至少对我来说是这样。你还需要-L标志来给它特定的库位置(因为Windows没有像/usr/lib这样统一的库位置,也没有类似于软件包管理器的东西)。但即使有了-L标志,在Windows上我也从未能够让SDL在GHCi中工作。这是我转向Linux进行所有Haskell开发的原因之一。在Windows中处理外部库只是太麻烦了。 - rtperson
1
@rtperson:我怀疑这就是为什么SDL包含sdl-config实用程序的原因。我正在使用cygwin,因此运行sdl-config --libs会给我-L/usr/lib -lmingw32 -lSDLmain -lSDL -mwindows。我假设它应该提供适合安装SDL的方式的合理结果。话虽如此,在GHCi中使事情正常工作仍然是一种沮丧的练习。 - C. A. McCann

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接