【问题标题】:haskell snap exitfailure 1haskell snap exitfailure 1
【发布时间】:2014-03-16 23:38:29
【问题描述】:

我是 Haskell 的新手,想尝试一下 snap 框架。不幸的是,我无法编译。我已经尝试过(我也知道),更新 cabal 并运行 sudo ghc-pkg recache,但是当我运行 cabal install snap 时仍然得到以下信息。请帮忙。

12 warnings and 1 error generated.
Failed to install binary-0.7.1.0
cabal: Error: some packages failed to install:
SHA-1.6.4 depends on binary-0.7.1.0 which faile
d to install.
binary-0.7.1.0 failed during the building phase
. The exception was:
ExitFailure 1
pwstore-fast-2.4.1 depends on binary-0.7.1.0 wh
ich failed to install.
snap-0.13.2.2 depends on binary-0.7.1.0 which f
ailed to install.

解决方案:

我首先通过自制软件安装“真正的”gcc,如下所示:

brew update
brew install gcc47

这需要 一段时间 才能安装(例如一个多小时)。完成后,我更新了 GHC 设置以使用自制软件安装的 gcc 副本。

GHC 设置位于此处:

/Library/Frameworks/GHC.framework/Versions/Current/usr/lib/ghc-7.6.3/settings

或者如果你用自制软件安装了 ghc(我没有)。

/usr/local/Cellar/ghc/7.6.3/lib/ghc-7.6.3/settings

更新线路

("C compiler command", "/usr/bin/gcc")

("C compiler command", "/usr/local/Cellar/gcc47/4.7.3/bin/gcc-4.7")

然后运行

 cabal update && cabal install snap

一切都会好起来的。 :)

【问题讨论】:

  • 你能把你的所有你的输出(即上面的警告和错误)?最好在lpaste.net 或其他东西上。谢谢!
  • 我正确的 gcc 可执行文件(使用 macports 安装 gcc49 后)是:(“C 编译器命令”,“/opt/local/bin/x86_64-apple-darwin13-gcc-4.9.0”)

标签: haskell cabal haskell-snap-framework


【解决方案1】:

您的问题是binary 包有一些不是严格有效的 C 预处理器构造。

看了一圈,发现有人在安装 Haskell 平台时有一个similar problem。似乎核心问题是 Clang C 预处理器比大多数 Haskeller 使用的 GCC 更严格。我假设这是您的问题:您使用的是 Clang 而不是 GCC。如果您使用的是 OS X,这是默认选择。

最简单的解决方案似乎是改用 GCC 进行预处理。请注意,在 OS X 上,/usr/bin/gcc 实际上指向 Clang!您需要将 GHC 指向实际安装的 GCC。

您可以通过编辑 GHC 的配置文件来做到这一点。在我的系统上,它位于

/usr/local/lib/ghc-7.6.3/settings

虽然我使用的是 Linux 而不是 OS X,但您的可能与此类似。在文件中进行更改

("C compiler command", "/usr/bin/gcc")

指向gcc 的实际副本而不是 Clang,然后再次尝试安装。

从长远来看,这感觉像是包的一个错误,可能需要解决,尽管我对包作者必须确定的问题或限制条件了解得不够多。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-04-16
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-06-28
    • 1970-01-01
    相关资源
    最近更新 更多