我在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