我想安裝圖表包的開羅後端。我首先按照說明here (Chart instructions)和here (GTK/cairo)安裝了GTK和cairo,並且具有本帖最新版本:cairo-0.12.5.3
和gtk-0.12.5.7
。未能安裝開羅:缺少符號_cairo_region_create_rectangles
但是,當試圖使用開羅時,我碰到了一堵牆,並採取了以下步驟。
> cabal install chart-cairo
Resolving dependencies...
Configuring Chart-cairo-1.2.2...
Building Chart-cairo-1.2.2...
Preprocessing library Chart-cairo-1.2.2...
[1 of 1] Compiling Graphics.Rendering.Chart.Backend.Cairo (Graphics\Rendering\Chart\Backend\Cairo.hs, dist\build\Graphics\Rendering\Chart\Backend\Cairo.o)
Loading package ghc-prim ... linking ... done.
Loading package integer-gmp ... linking ... done.
Loading package base ... linking ... done.
Loading package array-0.4.0.1 ... linking ... done.
Loading package deepseq-1.3.0.1 ... linking ... done.
Loading package bytestring-0.10.0.2 ... linking ... done.
Loading package transformers-0.3.0.0 ... linking ... done.
Loading package mtl-2.1.2 ... linking ... done.
Loading package utf8-string-0.3.7 ... linking ... done.
Loading package cairo-0.12.5.3 ... linking ... ghc.exe: C:\Users\user\AppData\Roaming\cabal\i386-windows-ghc-7.6.3\cairo-0.12.5.3\libHScairo-0.12.5.3.a: unknown symbol `_cairo_region_create_rectangles'*
ghc.exe: unable to load package `cairo-0.12.5.3'
Failed to install Chart-cairo-1.2.2
cabal: Error: some packages failed to install:
Chart-cairo-1.2.2 failed during the building phase. The exception was:
ExitFailure 1
其他開羅程序也失敗了。它安裝了Drawing.hs
文件,例如,失敗:
Loading package cairo-0.12.5.3 ... linking ... <interactive>: C:\Users\user\AppData\Roaming\cabal\i386-windows-ghc-7.6.3\cairo-0.12.5.3\libHScairo-0.12.5.3.a: unknown symbol `_cairo_region_create_rectangles'
ghc.exe: unable to load package `cairo-0.12.5.3'
符號從某文件丟失。 nm
將其列爲u
(未定義)。
對此有一個開放的bug,但它在三年內沒有被觸及。 (這個bug有一個評論,表明這個問題與Template Haskell有關,但我沒有對TH做任何事情。)
我需要一個更新或更舊版本的cairo庫嗎?上述功能在哪裏定義,爲什麼不在圖書館?如何解決這個問題的任何建議?
謝謝!
編輯 我最終確定的Graphviz和的Gnuplot在%PATH%均高於比GTK捆都有自己cairo.dll
。因此,錯誤的一個被運行時鏈接程序獲取。刪除這些路徑元素並嘗試重新安裝所有cairo和GTK。我遇到了一個新問題:
`libHSgtk-0.12.5.7.a: unknown symbol `__imp___fmode'`.
我試過一個乾淨的安裝Haskell的GTK和開羅包(整個過程),並確保所有的DLL加載這個時間和驗證與Process Explorer中的GTK目錄。可悲的是,我沒有更多時間來處理這個問題,並且必須放棄嘗試在Windows上與Haskell一起工作。也許我會在將來的某一天再嘗試一次。
cairo 0.12是非常非常古老的......,請嘗試使用[此工具包](http://gladewin32.sourceforge.net/)參考開羅站點: –
這是Haskell綁定的版本號,而不是開羅本身。 – duplode
@Tim似乎已安裝的'cairo'軟件包被破壞了。嘗試取消註冊('ghc-pkg unregister cairo')並用cabal重新安裝;這可能會給我們更多的線索,或者幸運的是,甚至可以解決問題。 – duplode