我在windows上遇到ghci + cairo问题。当我尝试加载,例如像这样的“ghci的-package开罗”失败,出现以下错误:Haskell,GHC,win32,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'
即使是最简单的程序不会在交互模式下工作,例如像“Text.hs”那与开罗包一起来。然而编译'ghc --make'一切都如预期的那样工作,所以它不是一个“缺失的dll”问题 - 一切都已到位。
我用'filemon'来查看“ghci”加载的内容,并在日志中可以看到'libcairo-2.dll'(并且此库有'_cairo_surface_destroy'符号定义)被找到并加载成功,所以我不用真的不明白 - 它还想要什么?
也许它是一个'线程'问题?最近有一个关于SOE图形库的Haskell咖啡厅线程展示类似于“Haskell School of Expression Hanging的代码” - http://www.haskell.org/pipermail/haskell-cafe/2011-January/088697.html。对不起,我不知道这个决议。 – 2011-02-01 12:28:28
任何机会是libcairo-2.dll在路径名中的空格位置?你也可以发布你正在使用哪个版本的ghci(在任何情况下,这看起来像一个链接器错误)? – 2011-02-01 16:46:33