2014-09-24 3 views
5

Ich versuche, eines meiner ausführbaren Dateien mit Profiling-Optionen zu kompilieren. Ich habe die -prof Optionen in meiner Cabal-Datei hinzugefügt. Wenn ich das tue, erhalte ich eine Nachricht:Wie kompiliert man Abhängigkeiten für das Profiling in einer Cabal-Sandbox

Could not find module ‘Package-X’ 
Perhaps you haven't installed the profiling libraries for package ‘package-x’? 
Use -v to see a list of the files searched for. 

Wie mache ich das? Ich habe versucht, cabal install --only-dependency --reinstall und ich bekomme die folgende Antwort:

All the requested packages are already installed: 
Use --reinstall if you want to reinstall anyway. 

habe ich schon --reinstall, was soll ich tun? Ich versuchte auch cabal configure --enable-profiling-libraries etc ...

+0

Does [diese] (http://stackoverflow.com/questions/1704421/cabal-not-installing-dependencies-when-needing-profiling-libraries) Frage Ihr Problem lösen? – bheklilr

+0

Es löst es irgendwie. 'cabal install --installer world' hat etwas gemacht. Aber ich kann immer noch nicht das Profiling für meine ausführbare Datei erhalten. Wenn ich "-prof" in der Cabal-Datei hinzufüge, klagt es, dass es nicht benötigt wird. Wenn ich es entfernen "+ RTS-P" beschweren die Binärdatei wurde nicht mit Profiling-Unterstützung kompiliert ... – mb14

+0

Haben Sie 'library-profiling: True' zu ​​Ihrer' .cabal/config' Datei hinzugefügt? Das schien der wahre Trick zu sein, um Bibliotheken mit Profiling zu installieren. – bheklilr

Antwort

4

Die link vorgeschlagen von bheklilr geholfen, aber nicht sofort.

Ich endete in meiner .cabal/config Datei library-profiling: True hinzufügen und alles neu installieren. cabal install --reinstall wolrd hat nicht funktioniert, vielleicht weil ich in einer Sandbox bin. Doch die guten Dinge über Sandkästen sind, dass man sie weg Graben kann so neu installierte ich alles mit

cabal sandbox delete 
cabal sandbox init 
cabal install 

Auch wenn diese Lösung gearbeitet, es aus den folgenden Gründen nicht zufriedenstellend ist:

  • Ich hatte zu ändern .cabal/config das ist eine globale Datei, während in einer idealen Welt hätte ich nur meine Sandbox ändern müssen. Allerdings habe ich nicht versucht, eine lokale Cabal Config-Datei zu erstellen

  • Ich musste ALLES neu installieren, dh die Profilerstellung Version jeder Bibliothek sowie die einfache Version, die bereits installiert war.

+0

Gemäß der Dokumentation (https://www.haskell.org/cabal/users-guide/installing-packages.html#developing-with-sandboxes) können Sie projektlokale Konfigurationsdateien erstellen, indem Sie eine Datei namens 'erstellen cabal.config' im selben Verzeichnis wie Ihre 'cabal.sandbox.config'. Dies sollte es Ihnen ermöglichen, die Option 'library-profiling: True' für Ihre Sandbox festzulegen. – Stephan

Verwandte Themen