使用 ghc 7.0.4 在基于 redhat 的 linux 上安装反应式 Banana-wx 或 wx
-
13-12-2019 - |
题
您好,我正在尝试安装(无需更新或安装最新的编译器)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的类型。