您好,我正在尝试安装(无需更新或安装最新的编译器)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
有帮助吗?

解决方案

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

并读取它溢出的错误消息。这个甜心通常会告诉你它想要什么......例如,如果它抱怨阴谋集团包 x, ,只需进行 cabal 安装 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,此时你应该会遇到我们的小bug......长话短说,它位于文件 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等了。

聚苯乙烯 http://sourceforge.net/tracker/index.php?func=detail&aid=3576397&group_id=73133&atid=536845. 。为什么我没有早点发现呢?:/

其他提示

i'v在lubuntu 12.10上解决了这个问题:

sudo cabal信息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安装反应性 - 香蕉-wx -fbuildexamples

这是不依赖于Glasgow Haskell编译器的版本或您的Linux的类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top