haskell snap выход из строя 1

Я новичок в Haskell, и хотел поиграть с Snap Framework. К сожалению, я просто не могу получить вещь для компиляции. Я пытался (все, что я знаю, тоже), обновление Кабала и работает 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 с помощью homebrew следующим образом:

brew update
brew install gcc47

Это заняло некоторое время для установки (как в течение часа). Как только это было сделано, я обновил настройки GHC, чтобы использовать копию gcc, установленную homebrew.

Настройки GHC находятся здесь:

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

или вот если вы установили ghc с помощью homebrew (я этого не сделал).

/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

и все должно быть хорошо.:)

1 ответ

Решение

Ваша проблема в том, что binary Пакет имеет некоторые конструкции препроцессора C, которые не являются строго допустимыми.

Посмотрев немного, я обнаружил похожую проблему, с которой кто-то сталкивался при установке платформы Haskell. Кажется, основная проблема заключается в том, что препроцессор Clang C более строг, чем GCC, используемый большинством Haskellers. Я предполагаю, что это ваша проблема: вы используете 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 и попробуйте установить снова.

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

Другие вопросы по тегам