Frage

Ich habe 6.12.3 installiert ghc und die Haskell-Plattform dann. Ich versuche, ein Testprogramm zu kompilieren:

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

so, natürlich, ich

cabal install Bindings

Welche funktioniert gut, und das Paket in ~ / .cabal / lib / Bindings-0.1.2 Das Problem ist, dass wenn ich mit ghc wieder zu kompilieren, ist es noch nicht das Paket nicht finde ich installiert habe mit Kabale. im ausführlichen Modus Kompilieren gibt:

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

Wie von einem anderen Benutzer vorgeschlagen Stackoverflow, habe ich versucht:

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

Aber ohne Erfolg. Wie ich die .cabal in der Liste der Paketverzeichnisse hinzufügen zu suchen? Danke dir!

War es hilfreich?

Lösung

Sie können überprüfen, welche Pakete mit ghc-pkg list installiert sind. Es kann sein, dass Sie müssen entweder angeben, die Pakete zu ghc mit -package <pkgname> oder ich glaube, das Hinzufügen --make lösen eine von Abhängigkeit der Jagd nach, einschließlich Pakete.

Edit: die Bindungen Paket in der Tat überflüssig ist, finden Sie unter der Hackage . Dies ist kein Paket-Management-Problem, das einzige Modul verfügbar Bindings.Deprecated ist, die man durchaus in der Lage zu laden sind, auch wenn es ein leeres Modul ist. Ich glaube, dass die relevanten Teile sind in bindings-<module> ausgebrochen worden, so dass, wenn Sie die Bindungen Funktionalität möchten Sie diese Pakete aussehen sollte.

Andere Tipps

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

Eine Sache zu sein, besonders bewusst ist, dass die Pakete von Kabale lokal standardmäßig installiert werden, während die Befehle

runhaskell Setup configure
runhaskell Setup build
runhaskell Setup install

installieren global standardmäßig. Wenn Sie ein Paket global installieren, werden die lokalen Pakete ignoriert. Der Standardwert für Kabale installieren kann durch Bearbeiten der Konfigurationsdatei geändert werden.

Ich war immer den gleichen Fehler mit dem Befehl runhaskell. Ich benutzen die Kabalen in dem Verzeichnis, das die Datei .cabal hatte und war in der Lage, den Fehler zu beheben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top