Sie müssen alle Module in der Cabal-Konfigurationsdatei auflisten. In Ihrem Fall legen Sie einfach die Liste der Module nach exposed-module:
. Es gibt keinen einfacheren Weg, eine Liste von Modulen zu schreiben.
Cabal kann die Dateien, die Teil einer ausführbaren Datei oder einer Bibliothek sind, nicht automatisch finden. Daher ist Cabal auf die Liste der Module in der Konfigurationsdatei angewiesen. Im Gegensatz zu GHC kann Cabal keine Module finden, die auf Importanweisungen im Quellcode basieren. Wenn Sie nicht jedes Modul auflisten, können Sie möglicherweise das Projekt erstellen (da GHC Quelldateien finden kann), aber andere Befehle wie cabal sdist
greifen nicht auf die Quelldateien zu, die nicht aufgelistet sind.
Fragen Sie, wie man ein Modul in ein Cabal-Projekt einbaut, ohne es in der Datei '.cabal' zu erwähnen? – Heatsink
@Heatsink, no - Wenn Sie eine Bibliothek mit Cabal kompilieren, müssen Sie '<...> .cabal' Konfigurationsdatei schreiben. In dieser Datei müssen Sie den Abschnitt 'Exposed-Module' bereitstellen, in dem Sie ** alle ** Module auflisten müssen, die Sie darstellen möchten. Ich möchte ** alle ** die Module offen legen. –
Das beantwortet meine Frage nicht. Jedes Modul muss in der '.cabal' Datei aufgelistet sein. Interne Module müssen ebenfalls in "Andere Module" aufgeführt sein. Fragen Sie nach alternativen Möglichkeiten, alle Module aufzulisten, oder fragen Sie nach Möglichkeiten, ein Modul zu verwenden, ohne es aufzulisten? – Heatsink