【问题标题】:Cabal install Wx for mac-os failureCabal 为 mac-os 失败安装 Wx
【发布时间】:2019-05-07 07:52:10
【问题描述】:

我正在与 Haskell 库建立一种爱恨交织的关系。无论如何,我真的很想深入学习 Haskell,但图书馆大部分时间都在试图阻止我(或者鼓励我自己写,但我还没有完全做到)。想试试 Wx 的 UI。阴谋集团一开始很高兴,但以来自地狱的消息结束。至少我认为是。

Downloading the latest package list from hackage.haskell.org
clang: warning: argument unused during compilation: '-nopie' [-Wunused-command-line-argument]
Resolving dependencies...
Downloading fgl-5.7.0.1...
Downloading old-locale-1.0.0.7...
Configuring old-locale-1.0.0.7...
Downloading stm-2.5.0.0...
Configuring fgl-5.7.0.1...
Configuring stm-2.5.0.0...
Building old-locale-1.0.0.7...
Building fgl-5.7.0.1...
Building stm-2.5.0.0...
Installed old-locale-1.0.0.7
Downloading old-time-1.1.0.3...
Configuring old-time-1.1.0.3...
Building old-time-1.1.0.3...
Installed stm-2.5.0.0
Installed old-time-1.1.0.3
Downloading wxcore-0.11.1.2...
Configuring wxcore-0.11.1.2...
Failed to install wxcore-0.11.1.2
Build log ( /Users/administrator/.cabal/logs/ghc-8.4.3/wxcore-0.11.1.2-7WkQ04B76zVGNKKljmrN1g.log ):
cabal: Entering directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-1098/wxcore-0.11.1.2'
error: Unknown option "--sysconfdir=/Users/administrator/Library/Haskell/etc". Use "--help" to show valid options.

cabal: Leaving directory '/var/folders/81/50s00bl11pv7fn8dw4n0w03m0000gn/T/cabal-tmp-1098/wxcore-0.11.1.2'
Installed fgl-5.7.0.1
Updating documentation index
/Users/administrator/Library/Haskell/share/doc/x86_64-osx-ghc-8.4.3/index.html
cabal: Error: some packages failed to install:
wx-0.11.1.2-3RIijI82LEqAoB6cQuvIlr depends on wx-0.11.1.2 which failed to
install.
wxcore-0.11.1.2-7WkQ04B76zVGNKKljmrN1g failed during the configure step. The
exception was:
ExitFailure 2

有什么建议吗?请不要说“使用 Gtk”,因为那更糟。如果有人可以帮助我,那就太好了。虽然航站楼是一个安全的居住地,但我想最终突破它并发现世界。 “世界你好!”

【问题讨论】:

    标签: haskell wxwidgets cabal


    【解决方案1】:

    由于我不知道的原因,您的安装选择了一个非常旧的 wxcore (0.11) 版本。

    你有更多关于 hackage 的现代版本,也在 github repo 上: https://github.com/wxHaskell/wxHaskell/

    github的版本是最新的(0.93),大部分都运行良好,但是你需要在wxcore中更改darwin的cc标志:

    -      cc-options: "-stdlib=libstdc++"
    +      cc-options: "-stdlib=libc++"
    

    (我已向邮件列表发送了一封电子邮件以记录此更改,并要求更新有关 hackage 的版本。)

    否则,我可以确认 wxHaskell 在新的 Mac 上可以正常编译并且可以正常工作。

    【讨论】:

    • 谢谢...我会尽快尝试一下。
    【解决方案2】:

    Haskell 源于需要通用函数式语言定义和实现的不同研究小组的需求。许多研究人员积极参与编程语言理论和函数式编程理论,因此他们将扩展或重新定义语言以满足他们的需求。生态系统有各种各样的库,其中许多没有开发到专业维护软件的水平。

    话虽如此,随着 Haskell 开始获得大公司的认可,提供一种语言和一组协同工作的库将成为真正的推动力。

    我见过的最一致的努力是Haskell Stack。他们从 stack 工具开始,这是一个包管理器和构建工具;它使用 cabal 进行下载和安装,(通常)使用 ghc 进行编译,以及您计算机上的任何构建工具。 Stack 使用 lts(我认为是长期支持)配置文件来标识一组已知可以相互协作的软件包版本。您可以告诉 stack 为您的项目使用特定的 lts 配置文件,即使您添加特定的包,它也会将其作为构建配置文件的一部分进行维护。

    从您的构建输出中,您正在尝试使用来自 hackage.haskell.org 的最新包。每个包都在自己的时间范围内更新,与任何其他包完全分开。堆栈方法是识别协同工作的包,这通常意味着可能需要旧版本的编译器。

    我记得,最新的 Wx Haskell 不能在 Mac OS X 上运行。可能有一个堆栈 lts 配置文件可用于让 Wx Haskell 在 Mac OS X 上运行。

    【讨论】:

    • 谢谢鲍勃..这是一个有用的答案。我想的也差不多。我确实希望 Haskell 发展成为一个专业维护的平台。自从我开始学习它以来,我开始越来越喜欢它,但图书馆可能会令人沮丧。它已经引导我去例如。为 html 输出创建一个新的作为训练自己的一部分,但在我看来缺乏有用的库。
    • 我为那些愿意听我讲述 Haskell 的人制作了类似的 cmets。在此之前,它是 Python、Scala、Java 甚至 Perl。我目前正在努力克服 Python 的噩梦,试图混合使用可以协同工作的 Python 库版本。所有人都经历了成长的痛苦。
    • 同意。从 ObjectiveC 更改为 Swift 时也遇到过这种情况。对于应用程序来说一切都很酷,对于 OSX imo 来说是噩梦。认为这是一个时间问题。我将暂时放弃 Wx 和 Gtk,直到出现一些明智的事情并专注于将浏览器作为主要 UI。仍然;在 Haskell 方面有很多东西要学,所以我猜我最终会偶然发现更好的实现,或者学习自己构建。谢谢鲍勃!
    • 我看到了一个在 Mac OS X 上运行的 gtk-haskell 实现。我想我很快就会尝试。
    猜你喜欢
    • 2020-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2017-06-23
    • 2019-12-28
    • 2022-06-29
    • 1970-01-01
    相关资源
    最近更新 更多