1

我正在努力在 Linux Mint 17 上安装 GTK / gtk2hs 绑定。

我第一次遇到这个问题是在我尝试在 Haskell 中获得 glade 支持时。

也有同样的问题,但纯粹是为了好玩,所以我顺其自然。

这次我试图用Haskell Chart可视化图表。

问题出现在第四步cabal install chart-cairo

我正在使用 GHC 版本 7.6.3、cabal 版本 1.16.0.2、gtk2hs-buildtools 版本 0.12.4-2ubuntu1(来自包管理器)、gtk2hsC2hs 版本 0.13.6(这是 glade 需要 >=0.13.8 的地方,但我找不到更新的版本)

到目前为止我尝试过的事情:

  1. 从包管理器下载 gtk2hs-buildtools 后,我更新了 cabal 并从命令行安装了工具

  2. 在 $PATH 前面添加了“$HOME/.cabal/bin”(在正确安装 gtk 之后)

  3. cabal install chart-cairo 给我这个错误信息

    Resolving dependencies...    
    [1 of 2] Compiling SetupWrapper     ( /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/SetupWrapper.hs, /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/SetupWrapper.o )    
    [2 of 2] Compiling Main             ( /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/setup.hs, /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/Main.o )    
    Linking /tmp/cairo-0.13.0.2-19862/cairo-0.13.0.2/dist/setup/setup ...    
    [1 of 2] Compiling Gtk2HsSetup      ( Gtk2HsSetup.hs, dist/setup-wrapper/Gtk2HsSetup.o )    
    [2 of 2] Compiling Main             ( SetupMain.hs, dist/setup-wrapper/Main.o )    
    Linking dist/setup-wrapper/setup ...    
    Configuring cairo-0.13.0.2...    
    Building cairo-0.13.0.2...    
    Preprocessing library cairo-0.13.0.2...    
    [ 1 of 18] Compiling Graphics.Rendering.Cairo.Matrix ( dist/build/Graphics/Rendering/Cairo/Matrix.hs, dist/build/Graphics/Rendering/Cairo/Matrix.o )    
    [ 2 of 18] Compiling Graphics.Rendering.Cairo.Types ( dist/build/Graphics/Rendering/Cairo/Types.hs, dist/build/Graphics/Rendering/Cairo/Types.o )    
    [ 3 of 18] Compiling Graphics.Rendering.Cairo.Internal.Utilities ( dist/build/Graphics/Rendering/Cairo/Internal/Utilities.hs, dist/build/Graphics/Rendering/Cairo/Internal/Utilities.o )    
    
    Graphics/Rendering/Cairo/Internal/Utilities.chs:24:42:    
        Module `Data.Text.Foreign' does not export `withCStringLen'    
    Failed to install cairo-0.13.0.2    
    cabal: Error: some packages failed to install:    
        Chart-cairo-1.3.2 depends on cairo-0.13.0.2 which failed to install.    
        cairo-0.13.0.2 failed during the building phase. The exception was:    
        ExitFailure 1    
    
  4. pkg-config cairo --modversion告诉我我有版本 1.13.1(比 0.13.0.2 更新?)

4

3 回答 3

1

我只是自己尝试过,遇到了一些我能够克服的障碍......也许你也有同样的问题。

由于某种原因,某些依赖项不会自动安装。不过,手动安装它们很容易。试试这个:

cabal install alex
cabal install gtk2hs-buildtools
cabal install cairo
cabal install chart-cairo

通常,如果您在 cabal 输出中看到错误消息,例如帖子中的以下行

Failed to install cairo-0.13.0.2   

手动尝试安装是个好主意。尽管应该解决依赖关系,但我遇到了很多没有解决的情况(我认为这可能与 cabal 安装命令行工具有关,但从未完全研究过)。在这种特殊情况下,这就是我所做的,但我不得不上链 4 次......

于 2014-12-02T02:56:01.980 回答
0
  1. text正在使用旧版本(也导致 cabal 选择旧版本cairowith bad build-deps)。尝试添加--constraint='cairo>=0.13.0.5'到您的 cabal 安装中。这也应该迫使阴谋集团选择更新版本的text.

  2. pkg-config cairo --modversion给出实际 cairo 库的版本。0.13.0.2 是包装 cairo 的 Gtk2Hs haskell 包的版本(实际包装的 cairo 版本取决于安装的内容)

于 2014-12-03T17:00:05.773 回答
0

我遇到了同样的问题。这是一个迟到的回复,但在这里找到了一个很好的资源来解决这个问题。在我的 Debian 系统(Linux Mint)上,我发现这样做:

sudo apt-get install libghc-gtk-dev

解决了这个问题。但该链接为几个基于 Linux 的系统以及 Windows、BSD 和 Mac 提供了安装建议。

于 2015-11-23T16:41:33.083 回答