簡體   English   中英

Cabal 為 mac-os 失敗安裝 Wx

[英]Cabal install Wx for mac-os failure

我正在與 Haskell 庫建立一種愛恨交織的關系。 無論如何,我真的很想深入學習 Haskell,但是圖書館大部分時間都在試圖阻止我(或鼓勵我自己寫,但我還沒有到那里)。 想為 UI 嘗試 Wx。 陰謀集團開始一切都很愉快,但以來自地獄的信息結束。 至少我認為是。

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”,因為那更糟。 如果有人可以幫助我,那就太好了。 雖然終端是一個安全的居住地,但我最終還是想擺脫它,去探索世界。 “你好,世界!”

由於我不知道的原因,您的安裝選擇了一個非常舊版本的 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 上編譯得很好並且工作正常。

Haskell 源於需要通用函數式語言定義和實現的不同研究人員群體的需求。 許多研究人員積極參與編程語言理論和函數式編程理論,因此他們會擴展或重新定義語言以滿足他們的需求。 該生態系統擁有一組多樣化的庫,其中許多未開發到專業維護軟件的水平。

話雖如此,隨着 Haskell 開始被大公司所接受,提供一種語言和一組協同工作的庫是實現這一目標的巨大推動力。

我見過的最一致的努力是Haskell Stack 他們從堆棧工具開始,這是一個包管理器和構建工具; 它使用cabal進行下載和安裝,(通常)使用ghc進行編譯,以及您計算機上的任何構建工具。 Stack 使用lts (我認為是長期支持)配置文件來標識一組已知可以相互協作的軟件包版本。 您可以告訴 stack 為您的項目使用特定的lts配置文件,它會將其作為構建配置文件的一部分進行維護,即使您添加了特定的包。

從您的構建輸出中,您正在嘗試使用來自 hackage.haskell.org 的最新包。 每個包都在其自己的時間范圍內更新,與任何其他包完全分開。 堆棧方法是識別一起工作的包,這通常意味着可能需要舊版本的編譯器。

我記得,最新的 Wx Haskell 在 Mac OS X 上不起作用。 可能有一個堆棧 lts 配置文件可用於讓 Wx Haskell 在 Mac OS X 上工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM