Cabal устанавливает Wx для Mac OS - PullRequest
0 голосов
/ 05 декабря 2018

У меня складываются отношения любви / ненависти с библиотеками Haskell.На самом деле хочу углубленно изучить Хаскель, несмотря ни на что, но библиотеки пытаются меня обескуражить большую часть времени (или побуждают меня писать свои собственные, но я еще не совсем там).Хотел попробовать 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», потому что это еще хуже.Было бы здорово, если бы кто-нибудь смог мне помочь.Хотя терминал является безопасным местом для проживания, я хочу со временем вырваться из него и открыть для себя мир.«Привет, мир!»

Ответы [ 2 ]

0 голосов
/ 25 июля 2019

Ваша установка выбирает очень старую версию wxcore (0.11) по неизвестным мне причинам.

У вас есть более современные версии на hackage, а также на репозитории github: https://github.com/wxHaskell/wxHaskell/

Версия github является самой современной (0.93), которая по большей части работает хорошо, но вам нужно изменить флаги cc для darwin в wxcore:

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

(Я отправил электронное письмо в список рассылки, чтобы задокументировать это изменение, и попросил обновить версию hackage.)

В противном случае я могу подтвердить, что wxHaskell прекрасно работает на новом Mac и работает.

0 голосов
/ 06 декабря 2018

Haskell вырос из потребностей разнообразной группы исследователей, которым требовалось общее определение и реализация функционального языка.Многие исследователи активно занимаются теорией языков программирования и теорией функционального программирования, поэтому они будут расширять или переопределять язык в соответствии со своими потребностями.Экосистема имеет разнообразный набор библиотек, многие из которых не были разработаны до уровня профессионально поддерживаемого программного обеспечения.

При этом, поскольку Haskell начинает достигать признания в крупных корпорациях, существует существенный толчок кстаньте реальными, предоставив язык и набор библиотек, которые работают вместе.

Наиболее согласованные действия, которые я видел, это стек Haskell .Они начинаются с инструмента stack , который является менеджером пакетов и инструментом сборки;он использует cabal для загрузки и установки и (обычно) ghc для компиляции, а также любые инструменты сборки, которые есть на вашем компьютере.Стек использует профиль lts (я думаю, что для долгосрочной поддержки), который идентифицирует набор версий пакетов, которые, как известно, работают друг с другом.Вы можете указать стеку использовать определенный профиль lts для вашего проекта, и он будет поддерживать его как часть вашего профиля сборки, даже когда вы добавляете определенные пакеты.

Из результатов сборки,Вы пытаетесь использовать последние пакеты с hackage.haskell.org.Каждый пакет обновляется в свой собственный период времени, совершенно отдельно от любого другого пакета.Стековый подход заключается в определении пакетов, которые работают вместе, что часто означает, что могут потребоваться более старые версии компилятора.

Как я помню, последняя версия Wx Haskell не работает в Mac OS X.профиль lts стека, который можно использовать для работы Wx Haskell на Mac OS X.

...