GHC не может найти мои Cabal установленные пакеты

StackOverflow https://stackoverflow.com/questions/4641684

  •  09-10-2019
  •  | 
  •  

Вопрос

Я установил 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 и смог разрешить ошибку.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top