在Linux上安装wxHaskell时构建错误

时间:2014-02-14 15:44:52

标签: linux haskell wxhaskell

我正在使用Ubuntu 13.10并尝试安装wxHaskell。我从http://repos.codelite.org/wx3.0/ubuntu/存储库安装了wxWidgets 2.9。

基本cabal install wx让我

src/cpp/eljgrid.cpp:61:65: error: no matching function for call to ‘wxGridCellEditor::PaintBackground(wxRect, wxGridCellAttr*)’
  self->PaintBackground(wxRect(x, y, w, h), (wxGridCellAttr*)attr);
                                                                 ^
[...]
wxcore-0.90.0.3 depends on wxc-0.90.0.4 which failed to install.

从GitHub存储库下载并从源代码构建得到我:

setup: can't find source for Graphics/UI/WXCore/WxcClassInfo in src/haskell,
dist/build/autogen
Failed to install wxcore-0.90.1.0
cabal: Error: some packages failed to install:
wxcore-0.90.1.0 failed during the building phase. The exception was:
ExitFailure 1
Resolving dependencies...
Configuring wx-0.90.1.0...
cabal: At least the following dependencies are missing:
wxcore >=0.90.1.0
Resolving dependencies...
cabal: Could not resolve dependencies:
trying: wx-0.90.1.0
trying: wx-0.90.1.0:+splitbase
rejecting: wxcore-0.90.0.3, 0.90.0.1, 0.90, 0.13.2.3, 0.13.2.1, 0.13.2,
0.12.1.7, 0.12.1.6, 0.12.1.5, 0.12.1.4, 0.12.1.3, 0.12.1.2, 0.12.1.1,
0.11.1.2, 0.11.1.1, 0.11.1.0, 0.11.0, 0.10.13.0, 0.10.13, 0.10.12, 0.10.11,
0.10.10, 0.10.9, 0.10.8, 0.10.7, 0.10.6, 0.10.5, 0.10.4, 0.10.3, 0.10.2,
0.10.1 (conflict: wx-0.90.1.0:splitbase => wxcore>=0.90.1.0)

这是怎么回事以及修复它需要什么?

2 个答案:

答案 0 :(得分:1)

听起来你已经克隆了wxHaskell的github副本:

git clone https://github.com/wxHaskell/wxHaskell

然后你尝试安装wxHaskell而不先安装任何构建依赖项。请注意您的错误消息:

cabal: At least the following dependencies are missing:
wxcore >=0.90.1.0

那个版本的wxcore还没有hackage(还),但是它只是你刚刚克隆的repo(参见https://github.com/wxHaskell/wxHaskell/blob/master/wxcore/wxcore.cabal)。所以首先转到wxcore目录并安装该库。

编辑:注意依赖树更深入。您需要先安装多个wx*软件包。

答案 1 :(得分:1)

我知道这是一个老帖子,但我花了一些时间安装wxHaskell(在Linux上),因此值得分享。 https://wiki.haskell.org/WxHaskell/Linux给出的说明非常需要刷新。

首先:

sudo apt-get install libglu1-mesa-dev
sudo apt-get install libwxgtk3.0-dev
sudo apt-get install libwxgtk-media3.0-dev

然后(如果你使用沙箱,cabal sandbox init之后):

cabal install wxdirect
cabal install wxc
cabal install wxcore
cabal install wx