Also versuche ich das Plugins-Paket zu verwenden, um dynamisch eine Haskell-Funktion aus einer Quelldatei zu laden. Die Quelldatei hängt von einem Paket foo
mit Modul Foo.Bar
ab. Ich führe mein Projekt in einer Cabal Sandbox, wo ich foo
installiert habe. Sowohl mein Hauptprogramm als auch das Modul, das ich mit Plugins lade, hängen von foo
ab. Ich bekomme immer eine der folgenden zwei Fehler:Haskell Plugins und Cabal Sandbox
Als ich foo
in ~/.cabal
installiert haben, ich den Fehler:
GHCi runtime linker: fatal error: I found a duplicate definition for symbol
aizmvszmaizmlibzm0zi1_FooziBar_zdfTypeableBazzuds2_closure
whilst processing object file
/home/joey/.cabal/lib/foo-0.1/ghc-7.6.3/HSfoo-0.1.o
This could be caused by:
* Loading two different object files which export the same symbol
* Specifying the same object file twice on the GHCi command line
* An incorrect `package.conf' entry, causing some object to be
loaded twice.
GHCi cannot safely continue in this situation. Exiting now. Sorry.
Wenn ich es nicht in ~/.cabal
installiert haben, bekomme ich eine Standard " Modul nicht gefunden "Fehler. Und wenn ich es nicht in meiner Sandbox installiert habe, bekomme ich den gleichen Modul nicht gefunden Fehler, der versucht, meinen Hauptprogrammcode zu kompilieren.
Die Plugins-Dokumentation ist bestenfalls knapp. Irgendwelche Gedanken darüber, wie man das löst?
Es wäre hilfreich, wenn Sie ein Minimum, Kompilierung, Beispiel geben würden. –
Ich werde das morgen tun. Es ist derzeit in einem ziemlich großen yesod-Projekt, ich muss den minimalen Teil extrahieren. – jmite
Ich habe Probleme mit einem minimalen Beispiel. Irgendwelche Ideen? – jmite