我在
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’符号)被成功地找到并加载,所以我真的不明白 – 它还需要什么?
我怀疑你遇到了很多我刚刚做过的问题.
我最近在Haskell和ZeroMQ在Windows上做了一些事情. GHC在Windows上运行,ZeroMQ有一个MingW32端口,并且有一个标准的ZeroMQ Cabal包,所以我认为这将工作.
然而:
> GHC仅部分支持Windows上的动态链接.见here.
> ZeroMQ Cabal软件包取决于libzmq的静态版本.
> GHC在Windows上使用MingW32约定其库和dll.
> ZeroMQ只在他们的MingW32端口中构建一个动态的.dll,而不是.a静态存档.
我无法使所有的片段合在一起,所以在我的Windows框上没有基于Haskell的ZeroMQ编码.