Pregunta

He instalado GHC 6.12.3, y luego la Plataforma Haskell. Estoy intentando compilar un programa de prueba:

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

Así que, naturalmente, tengo

cabal install Bindings

Lo que funciona bien, y coloca el paquete en ~ / lib .cabal Es decir, que cuando voy a compilar de nuevo con GHC, que sigue sin encontrar el paquete que ha instalado el problema / / encuadernaciones-0.1.2 con Cabal. compilar en modo detallado da:

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

Como se sugiere por otro usuario stackoverflow, he intentado:

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

Pero fue en vano. ¿Cómo añado el .cabal a la lista de directorios de paquete para buscar? ¡Gracias!

¿Fue útil?

Solución

Se puede comprobar qué paquetes se instalan con ghc-pkg list. Puede ser que usted necesita para especificar los paquetes a ghc con -package <pkgname> o cree que la adición de --make dará lugar a una persiguiendo a las dependencias, incluyendo paquetes.

Editar el paquete fijaciones es obsoleta en efecto, ver la hackage. Este no es un problema de gestión de paquetes, el único módulo disponible es Bindings.Deprecated, que son perfectamente capaces de carga, a pesar de que es un módulo vacío. Creo que las partes pertinentes se han estallado en bindings-<module>, así que si quieres la funcionalidad fijaciones que debe buscar a esos paquetes.

Otros consejos

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

Una cosa a tener especialmente en cuenta, es que los paquetes están instalados localmente de forma predeterminada por Cabal, mientras que los comandos

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

instalar a nivel mundial por defecto. Si instala un paquete global, los paquetes locales se ignoran. El valor por defecto para el cabal a instalar se puede modificar mediante la edición del archivo de configuración.

Me estaba el mismo error con el comando runhaskell. He utilizado la cábala en el directorio que tenía el archivo .cabal y fue capaz de resolver el error.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top