我在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'符号)被成功找到并加载,所以我不知道真的明白 - 它还需要什么?
答案 0 :(得分:2)
我怀疑你遇到了我刚刚遇到的许多问题。
我最近尝试在Windows上使用Haskell和ZeroMQ做一些事情。 GHC在Windows上运行,而ZeroMQ有一个MingW32端口,并且有一个标准的ZeroMQ Cabal包,所以我认为这样可行。
然而:
libzmq
的静态版本。.dll
,而不是.a
静态存档。我无法将所有部分组合在一起,因此我的Windows框中没有基于Haskell的ZeroMQ编码。
答案 1 :(得分:0)
请运行ghc-pkg检查以查看它是否一致