windows - haskell ,GHC,win32,开罗

标签 windows haskell cairo

我在 Windows 上使用 ghci+cairo 时遇到问题。当我尝试加载时,例如像这样的“ghci -package cairo”,它失败并出现以下错误:

Loading package random-1.0.0.2 ... linking ... done.
Loading package haskell98 ... linking ... done.
Loading package syb-0.1.0.2 ... linking ... done.
Loading package base-3.0.3.2 ... linking ... done.
Loading package mtl-1.1.0.2 ... linking ... done.
: C:\Users\alexeys\AppData\Roaming\cabal\cairo-0.12.0\ghc-6.12.3\HScairo-0.12.0.o: unknown symbol `_cairo_surface_destroy'
Loading package cairo-0.12.0 ... linking ... : unable to load package `cairo-0.12.0'

即使是最简单的程序也无法在交互模式下运行,例如 cairo 包中附带的“Text.hs”。然而,使用“ghc --make”编译后,一切都按预期工作,因此这不是“缺少 dll”问题 - 一切就绪。

我使用“filemon”来查看“ghci”加载了什么,在日志中我可以看到“libcairo-2.dll”(并且这个库定义了“_cairo_surface_destroy”符号)被成功找到并加载,所以我不真的不明白 - 它还想要什么?

最佳答案

我怀疑您遇到了我刚刚遇到的许多问题。

我最近尝试在 Windows 上使用 Haskell 和 ZeroMQ 做一些事情。 GHC 在 Windows 上运行,而 ZeroMQ 有一个 MingW32 端口,并且有一个标准的 ZeroMQ Cabal 包,所以我认为这会起作用。

但是:

  • GHC 仅部分支持 Windows 上的动态链接。参见 here .
  • ZeroMQ Cabal 包依赖于 libzmq 的静态版本。
  • Windows 上的 GHC 对其库和 dll 使用 MingW32 约定。
  • ZeroMQ 仅在其 MingW32 端口中构建动态 .dll,而不是 .a 静态存档。

我无法将所有部分组合在一起,因此我的 Windows 盒子上没有基于 Haskell 的 ZeroMQ 编码。

关于windows - haskell ,GHC,win32,开罗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4861647/

相关文章:

c - 在 CodeBlocks Windows 7 上安装 GTK+3

haskell - 无法在终端中运行 ghci

list - Haskell 递归地将函数应用于除第一个元素之外的每个元素?

python - 安装失败 "Cairocffi"

c++ - 在 C++ 中使用 Cairo 渲染亚洲字符?

windows - Docker compose - 共享卷 Nginx

c++ - 将 Dll 保存在自定义文件夹中

python - 将python路径放在windows机器上

haskell 折叠玫瑰树路径

python - 如何使用开罗将文本保持在一个圆圈内?