我在 Windows 上遇到 ghci+cairo 的问题。当我尝试加载时,例如像这样的“ghci -package cairo”,它会失败并出现以下错误:
正在加载包 random-1.0.0.2 ... 链接 ... 完成。 加载包haskell98 ...链接...完成。 正在加载包 syb-0.1.0.2 ... 正在链接 ... 完成。 正在加载包 base-3.0.3.2 ... 链接 ... 完成。 正在加载包 mtl-1.1.0.2 ...链接...完成。 : C:\Users\alexeys\AppData\Roaming\cabal\cairo-0.12.0\ghc-6.12.3\HScairo-0.12.0.o: 未知符号`_cairo_surface_destroy' 正在加载包 cairo-0.12.0 ... 链接 ...:无法加载包 'cairo-0.12.0'
即使是最简单的程序也不能在交互模式下工作,例如 cairo 包附带的“Text.hs”。然而,使用 'ghc --make' 编译的一切都按预期工作,所以它不是“缺少 dll”的问题 - 一切都到位。
我使用“filemon”查看“ghci”加载了什么,在日志中我可以看到“libcairo-2.dll”(并且这个库定义了“_cairo_surface_destroy”符号)被找到并成功加载,所以我不太明白- 它还想要什么?