Dies ist der Befehl c2hs, der beim kostenlosen Hosting-Anbieter OnWorks mit einer unserer zahlreichen kostenlosen Online-Workstations wie Ubuntu Online, Fedora Online, dem Windows-Online-Emulator oder dem MAC OS-Online-Emulator ausgeführt werden kann
PROGRAMM:
NAME/FUNKTION
c2hs – C->Haskell-Schnittstellengenerator
ZUSAMMENFASSUNG
c2hs [OPTIONAL] ... Header-Datei Bindungsdatei
BESCHREIBUNG
Diese Handbuchseite beschreibt kurz das c2hs Befehl. Weitere Einzelheiten finden Sie im Hauptteil
Dokumentation, die in verschiedenen anderen Formaten verfügbar ist, einschließlich SGML und HTML; sehen
unten mit.
OPTIONAL
Die Programme folgen der üblichen GNU-Befehlszeilensyntax, mit langen Optionen, die mit zwei beginnen
Bindestriche („-“). Nachfolgend finden Sie eine Zusammenfassung der Optionen. Eine vollständige Beschreibung finden Sie im
andere Dokumentation.
c2hs akzeptiert die folgenden Optionen:
-H, -?, --help
kurze Hilfe
-in, --Version
Versionsinformationen anzeigen
--numerische-Version
Versionsnummer anzeigen
-c CPP, --cpp=CPP
ausführbare Datei verwenden CPP um den C-Präprozessor aufzurufen
-C CPPOPTS, --cppopts=CPPOPTS
Übergeben Sie CPPOPTS an den C-Präprozessor
-o FILE, --ausgabe=FILE
Ausgabeergebnis an FILE (sollte mit enden .hs)
-t PATH, --output-dir=PATH
Platzieren Sie die generierten Dateien im PATH
-p PLATTFORM, --platform=PLATTFORM
Plattform für die Cross-Kompilierung
-k, --halten
Behalten Sie den vorverarbeiteten C-Header bei
- l, --copy-library
Kopieren Sie das Bibliotheksmodul „C2HS“ in das aktuelle Verzeichnis
-d TYP, --dump=TYP
Geben Sie interne Informationen aus (zum Debuggen), wobei TYPE einer von Folgendem ist:
· Spur Trace-Compiler-Phasen
· genbind Trace-Bindungsgenerierung
· ctrav Verfolgen Sie den Durchlauf der C-Deklaration
· chs Dump der Bindungsdatei (fügt hinzu .entsorgen zum Namen)
Header-Datei ist die Header-Datei, die zur gemarshallten Bibliothek gehört. Es muss enden mit
Suffix .h.
Bindungsdatei ist die entsprechende Haskell-Bindungsdatei, die mit einem Suffix enden muss .chs.
PLATTFORM Der Plattformname kann einer der folgenden sein: x86_64-linux. i686-linux. m68k-palmos. Dies
ermöglicht eine übergreifende Kompilierung, sofern der Rest Ihrer Toolchain dies unterstützt. Der
Standard ist die aktuelle Hostplattform.
Die nützlichste dieser Optionen ist wahrscheinlich --cppopts (oder -C). Wenn die C-Header-Datei
benötigt spezielle Optionen (wie -D oder -I), um den C-Präprozessor zu durchlaufen, hier ist die
Ort, an dem man sie passieren kann.
Beispiele:
Der einfachste Weg, den C->Haskell Interface Generator zu verwenden, ist über Genau. Cabal weiß davon
.chs Dateien und wird ausgeführt c2hs automatisch und übergibt die entsprechenden Flags.
Bei direkter Anwendung c2hs wird normalerweise wie folgt bezeichnet:
c2hs lib.h Lib.chs
woher lib.h ist die Header-Datei und Lib.chs das Haskell-Bindungsmodul, das die C- definiert
bzw. Haskell-seitige Schnittstelle. Wenn keine Fehler auftreten, ist das Ergebnis ein reines Ergebnis
Haskell-Modul Lib.hs, das die Haskell-API der Bibliothek implementiert.
Ein komplexerer Aufruf könnte so aussehen:
c2hs --cppopts=-I/some/obscure/dir --cppopts=-DEXTRA lib.h Lib.chs
Häufig, lib.h befindet sich nicht im aktuellen Verzeichnis, sondern in einer der Header-Dateien
Verzeichnisse. Abgesehen vom aktuellen Verzeichnis sucht C->Haskell an zwei Stellen nach
Header: zunächst im Standard-Include-Verzeichnis des verwendeten Systems, das liegt in der Regel vor
/ usr / include und /usr/local/include; und zweitens wird es in jedem Verzeichnis suchen, das vorhanden ist
in einem -I erwähntDIR Option, die über an den Präprozessor übergeben wird --cppopts.
VORSICHTEN
Wenn Sie dem Präprozessor mehr als eine Option zur Verfügung stellen möchten, verwenden Sie „multiple“.
--cppopts= Flaggen.
Nutzen Sie c2hs online über die Dienste von onworks.net