使用ghc 7.0.4在基于redhat的linux上安装active banana-wx或wx

时间:2012-07-29 03:09:36

标签: haskell reactive-programming frp

嗨我正在尝试安装,(无需更新或安装最新的编译器),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

当我尝试安装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

2 个答案:

答案 0 :(得分: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包x,只需要进行cabal安装x。如果它抱怨Linux包y,那么使用你的Linux包管理器并安装这个包的开发版本,在Debian中通常称为lib<y>-dev。所以,例如,如果

cabal install wxc 

给出一个错误,说明缺少包gtk + 2.0,你想要

apt-get install libgtk2.0-dev

与cairo,glade2和其他GTK相关的库相同的故事

如果你是绿色的所有先决条件,你想安装wxWidgets-2.9,它目前处于开发阶段...所以,它没有Linux的任何二进制文件,你应该自己构建它。从wxWidgets网站下载源代码并构建它。这很简单,只需:

  • 将源代码解压缩/解压缩到您喜欢的目录
  • 运行./config
  • run ./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文件在同一位置重新创建存档。

  • run ./make

现在应该可以了。

  • 运行sudo make install(通常,你应该拥有root权限来安装wxWidgets库...)。

完成后尝试

cabal install wx

一次。它现在应该工作了。我想,在那之后你可以享受你的反应香蕉wx,wxHaskell,phooey等。

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

答案 1 :(得分:1)

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

sudo cabal info 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 install wx-0.13.2.3

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

sudo cabal install reactive-banana-wx -fbuildExamples

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