4

嗨,我正在尝试安装,(无需更新或安装最新的编译器),reactive-banana-wx 并且其中一个要求失败

cabal install reactive-banana-wx

这是错误

Configuring wxc-0.90.0.4...
setup: failed
cabal: Error: some packages failed to install:
reactive-banana-wx-0.6.0.1 depends on wxc-0.90.0.4 which failed to install.
wx-0.90.0.1 depends on wxc-0.90.0.4 which failed to install.
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1
wxcore-0.90.0.3 depends on wxc-0.90.0.4 which failed to install

当我尝试 cabal 安装 wxcore、wx 或 wxc 时,他们都说失败并指向需要 wxc。

这是错误

cabal install wxc
Resolving dependencies...
[1 of 1] Compiling Main             ( /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/Setup.hs, /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/dist/setup/Main.o )
Linking /tmp/wxc-0.90.0.419410/wxc-0.90.0.4/dist/setup/setup ...
Configuring wxc-0.90.0.4...
setup: failed
cabal: Error: some packages failed to install:
wxc-0.90.0.4 failed during the configure step. The exception was:
ExitFailure 1

如果有用的话,这是我的编译器信息

ghc -v
Glasgow Haskell Compiler, Version 7.0.4, for Haskell 98, stage 2 booted by GHC version 7.0.4
4

2 回答 2

3

我今晚在 Debian 上尝试使用 ghc 7.4.1 安装 phooey 时遇到了同样的错误。原因是包 wxc-0.90.0.4 中的一个错误,它应该会影响所有基于 wxHaskell 的包。您可以修复它,无需降级您的 wxc 包...

重现它的最简单方法是

cabal install wxc 

或者

cabal install glade

在执行此操作之前,确保所有先决条件均已就绪可能是个好主意。wxc 依赖于许多 cabal 和 Linux 包,所有这些包都应该被安装和编译......我以最愚蠢的方式做到了,只需运行

cabal install wxc 

并阅读它溢出的错误消息。这个甜心通常会告诉你它想要什么......例如,如果它抱怨 cabal package x,只需执行 cabal install x。如果它抱怨 Linux 包y,那么使用你的 Linux 包管理器并安装这个包的开发版本,它lib<y>-dev在 Debian 中通常被调用。因此,例如,如果

cabal install wxc 

给你一个错误,说缺少包 gtk+2.0,你想做

apt-get install libgtk2.0-dev

cairo、glade2 和其他与 GTK 相关的库也是如此

当您满足所有先决条件时,您想安装 wxWidgets-2.9,它目前处于开发阶段......因此,它没有任何适用于 Linux 的二进制文件,您应该自己构建它。从 wxWidgets 网站下载源代码并构建它。这很容易做到,只需:

  • 解压/解压源代码到你喜欢的目录
  • 运行 ./config
  • 运行 ./make

如果您使用的是 wxc-0.90.0.4,此时您应该会遇到我们的小错误... 长话短说,它在文件 eljpen.cpp 中,您可以在

~/.cabal/packages/hackage.haskell.org/wxc/0.90.0.4/wxc-0.90.0.4.tar.gz

打开存档,转到文件中的第 159 行并替换 *_ref = NULL; 使用 _ref = NULL 或其他更有意义的东西。然后在其中包含固定的 eljpen.cpp 文件的同一位置重新创建存档。

  • 运行 ./make

它现在应该可以工作了。

  • 运行 sudo make install (通常,您应该拥有 insatll wxWidgets 库的 root 权限...)。

完成后尝试做

cabal install wx

再次。它现在应该可以工作了。我想,在那之后你就可以享受你的 reactive-banana-wx、wxHaskell、phooey 等了。

PS http://sourceforge.net/tracker/index.php?func=detail&aid=3576397&group_id=73133&atid=536845。为什么我没有早点找到?:/

于 2013-02-21T00:52:19.373 回答
1

我已经在 Lubuntu 12.10 上解决了这个问题,所以:

sudo 阴谋集团信息 wx

Synopsis:      wxHaskell
Versions available: 0.11.1.2, 0.12.1.4, 0.12.1.5, 0.12.1.6, 0.13.2,
                    0.13.2.1, 0.13.2.3, 0.90, 0.90.0.1 (and 11 others)

我挑选了不同版本的 wxHaskell,但只有 0.13.2.3 是对的。

sudo cabal 安装 wx-0.13.2.3

...并且所有内容都已编译和安装。然后我可以安装:

sudo cabal install reactive-banana-wx -fbuildExamples

这不取决于您的 Glasgow Haskell 编译器的版本或您的 Linux 类型。

于 2013-01-09T10:01:09.777 回答