GHC не может найти мои Cabal установленные пакеты
Вопрос
Я установил GHC 6.12.3, а затем платформу Haskell. Я пытаюсь собрать программу тестирования:
$ ghc test.hs
test.hs:3:0:
Failed to load interface for `Bindings':
Use -v to see a list of the files searched for.
Итак, естественно, я делаю
cabal install Bindings
Что отлично работает, и помещает пакет в ~ / .cabal / lib / bindings-0.1.2 Проблема в том, что когда я снова пойду на компиляцию с GHC, он все еще не находит пакет, который я установил с Cabal. Компиляция в Verbose Mode дает:
ghc -v test.hs
Using binary package database: /home/ludflu/ghc/lib/ghc-6.12.3/package.conf.d/package.cache
Using binary package database: /home/ludflu/.ghc/x86_64-linux 6.12.3/package.conf.d/package.cache
Как предложено еще одним пользователем Stackoverflow, я попробовал:
ghc-pkg describe rts > rts.pkg
vi rts.pkg # add the /home/ludflu/.cabal/lib to `library-dirs` field
ghc-pkg update rts.pkg
Но безрезультатно. Как я добавить .cabal в список пакетов каталогов на поиск? Спасибо!
Решение
Вы можете проверить, какие пакеты установлены с ghc-pkg list
. Отказ Может быть, вам нужно либо указывать пакеты для ghc
с участием -package <pkgname>
Или я верю добавить --make
Чтобы вызвать преследование зависимостей, включая пакеты.
Редактировать: Пакет привязок действительно устарел, см. Страница Hackage.. Отказ Это не проблема управления пакетами, единственный доступный модуль Bindings.Deprecated
, который вы идеально можете загрузить, даже если это пустой модуль. Я считаю, что соответствующие части были разбиты в bindings-<module>
, Так что, если вы хотите, чтобы функциональные возможности привязки вы должны смотреть на эти пакеты.
Другие советы
http://www.haskell.org/haskellwiki/cabal-install.
Однозначное особое внимание о том, что пакеты установлены локально по умолчанию Cabal, тогда как команды
runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install
Установите глобально по умолчанию. Если вы устанавливаете пакет глобально, локальные пакеты игнорируются. По умолчанию для Cabal-install может быть изменен путем редактирования файла конфигурации.
Я получал ту же ошибку с runhaskell
команда. Я использовал Cabal в каталоге, который имел файл .cabal и смог разрешить ошибку.