Wenn ich die verschiedenen MIN_VERSION_
-Makros von Cabal in einem Haskell-Projekt verwende, wie kann ich sicherstellen, dass alle korrekt definiert sind, wenn ich keine Kabale verwende, z. beim Testen in GHCi?Wie verwende ich Cabal MIN_VERSION_ und andere Makros mit Ghci?
Antwort
Heutzutage unterstützt cabal
einen Unterbefehl cabal repl
, der die gesamte Einrichtung für Sie erledigt, so dass zumindest für ghci
Folgendes unnötig ist. Trotzdem:
Der Befehl cabal build
generiert die Datei dist/build/autogen/cabal_macros.h
, die alle Definitionen enthält, die Sie benötigen. Um diese Datei in einen ghc-Aufruf aufzunehmen, benötigen Sie die Flags -optP-include -optPdist/build/autogen/cabal_macros.h
.
Der Einfachheit halber können Sie die folgenden in einer .ghci
Datei im Projektverzeichnis platzieren:
:set -optP-include -optPdist/build/autogen/cabal_macros.h
, so dass Sie, um die Optionen nicht tippen jedes Mal, die Sie verwenden möchten GHCI.
Vorsicht: Die Makros werden entsprechend der Konfiguration definiert, als Sie zuletzt cabal build
ausgeführt haben, und werden nicht aktualisiert, wenn Sie neue Pakete installieren oder eine andere GHC-Version verwenden: dazu müssen Sie neu konfigurieren und das Paket neu erstellen.
(Danke an Simon Hengel auf der Bibliotheken Liste für diese Weisheit: http://www.haskell.org/pipermail/libraries/2012-September/018491.html).
- 1. Stapel ghci mit Bibliothek
- 2. Wie bekomme ich ghci, um Pakete zu sehen, die ich von cabal installiert habe?
- 3. Wie verwende ich mehrere Where-Klauseln in GHCi?
- 4. Wie kann ich GHCi mit den neuen cabal 1.17 Sandboxen verwenden?
- 5. Wie kann ich `cabal repl` anstelle von` ghci` in `ghc-mod` verwenden?
- 6. Haskell Plugins und Cabal Sandbox
- 7. Wie verwende ich Java Script in Excel-Makros?
- 8. Wie verwende ich andere C++ - Compiler mit CUDA unter Windows?
- 9. Wie verwende ich eine andere Server-IP mit PHP/cURL?
- 10. cabal FFI-Abhängigkeit
- 11. Verwenden Sie unterschiedliche Konfigurationen für "ghci" und "stack ghci"
- 12. MAKROS - Wie teile ich und dann Runde
- 13. Wie behebe ich cabal-install Fehler für das Vektor-Algorithmus-Paket, Darcs und andere?
- 14. Wie debugge ich Makros?
- 15. Haskell Woher weiß ich, GHCi arbeitet korrekt
- 16. GHCi kann keine Module meines Programms finden
- 17. Wie definiere ich Funktionen mit Racket-Makros?
- 18. Wie bekomme ich Konstruktorargumente mit Scala-Makros?
- 19. ‚Fehlgeschlagen Schnittstelle laden‘ Fehler, wenn in GHCI
- 20. Wie lade ich ein Skript nach ghci?
- 21. Wie macht man ein Haskell-Cabal-Projekt mit Bibliothek + ausführbaren Dateien, die noch mit runhaskell/ghci laufen?
- 22. Wie verwende ich Django Messaging, um andere Benutzer zu warnen?
- 23. Präprozessormakros als Parameter an andere Makros
- 24. "cabal install cabal-install" aktualisiert keine cabal-Version in OSX
- 25. Wie aktiviere ich Spracherweiterungen in GHCi?
- 26. Wie kann ich Makros/andere Vorlagen mit einem FunctionLoader in Jinja2 integrieren?
- 27. Wie verwende ich Recycle.scrollTo?
- 28. Wie kann ich einen einfachen Test mit Cabal einrichten?
- 29. Wie verwende ich Android NavigationDrawer, um andere Fragmente zu erstellen?
- 30. Makros und Visual C++