Domanda

ho installato GHC 6.12.3, e quindi la piattaforma Haskell. Sto cercando di compilare un programma di 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.

così, naturalmente, io

cabal install Bindings

Il che funziona bene, e pone il pacchetto in ~ / .cabal / lib / bindings-0.1.2 è, che quando vado a compilare di nuovo con GHC, ancora non trova il pacchetto che ho installato Il problema con cabala. compilazione in modalità dettagliata dà:

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

Come suggerito da un altro utente StackOverflow, ho provato:

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

Ma senza alcun risultato. Come aggiungo il .cabal alla lista delle directory del pacchetto per la ricerca? Grazie!

È stato utile?

Soluzione

È possibile controllare quali pacchetti sono installati con ghc-pkg list. Può essere che è necessario specificare i pacchetti da ghc con -package <pkgname> o io creda aggiungendo --make a attiverà un inseguire delle dipendenze, tra cui pacchetti.

Modifica il pacchetto binding è davvero obsoleto, vedere la pagina hackage . Questo non è un problema di gestione dei pacchetti, l'unico modulo disponibile è Bindings.Deprecated, che si è perfettamente in grado di carico, anche se è un modulo vuoto. Credo che le parti pertinenti sono state scoppiata in bindings-<module>, quindi se si desidera che la funzionalità di binding si dovrebbe guardare a quei pacchetti.

Altri suggerimenti

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

Una cosa da essere particolarmente consapevoli, è che i pacchetti siano installati localmente per default da cabala, mentre i comandi

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

installazione a livello globale per impostazione predefinita. Se si installa un pacchetto a livello globale, i pacchetti locali vengono ignorati. L'impostazione predefinita per la cabala-installazione può essere modificato modificando il file di configurazione.

mi è stato sempre lo stesso errore con il comando runhaskell. Ho usato la cabala nella directory che ha avuto il file .cabal ed è stato in grado di risolvere l'errore.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top