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 и попробуйте установить снова.
В долгосрочной перспективе это похоже на ошибку в пакете, и, вероятно, ее необходимо устранить, хотя я не очень хорошо знаю об этой проблеме или об ограничениях, которые авторы пакетов должны быть уверены.