Question

J'ai installé GHC 6.12.3, puis la plate-forme Haskell. Je suis en train de compiler un programme de test:

$ ghc test.hs
test.hs:3:0:
    Failed to load interface for `Bindings':
      Use -v to see a list of the files searched for.

Alors, naturellement, je fais

cabal install Bindings

Ce qui fonctionne très bien, et place le paquet dans ~ / .cabal / lib / liaisons-0.1.2 Le problème est que quand je vais compiler à nouveau avec GHC, il ne trouve toujours pas le paquet que j'ai installé avec cabale. la compilation en mode verbose donne:

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

Comme suggéré par un autre utilisateur stackoverflow, j'ai essayé:

ghc-pkg describe rts > rts.pkg
vi rts.pkg                      # add the /home/ludflu/.cabal/lib to `library-dirs` field
ghc-pkg update rts.pkg

Mais en vain. Comment ajouter le .cabal à la liste des répertoires de paquets pour rechercher? Je vous remercie!

Était-ce utile?

La solution

Vous pouvez vérifier quels paquets sont installés avec ghc-pkg list. Il se peut que vous devez soit spécifier les packages à ghc avec -package <pkgname> ou je crois ajouter à --make déclenchera une pourchassant des dépendances, y compris les paquets.

Modifier le package liaisons est obsolète en effet, voir la Page hackage . Ce n'est pas un problème de gestion des paquets, le seul module disponible est Bindings.Deprecated, que vous êtes parfaitement capable de charger, même si elle est un module vide. Je crois que les parties concernées ont été éclaté en bindings-<module>, donc si vous voulez que la fonctionnalité bindings vous devriez regarder ces paquets.

Autres conseils

http://www.haskell.org/haskellwiki/Cabal-install

Une chose à être conscient surtout de, est que les paquets sont installés localement par défaut par cabale, alors que les commandes

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

installer globalement par défaut. Si vous installez un package globalement, les paquets locaux sont ignorés. La valeur par défaut pour cabale installation peut être modifié en éditant le fichier de configuration.

Je recevais la même erreur avec la commande runhaskell. J'ai utilisé la cabale dans le répertoire qui a le fichier .cabal et a pu résoudre l'erreur.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top