Wie verbindet man ein Go-Programm mit einer C-Bibliothek?Schnittstelle Mit C-Bibliotheken gehen
Ich habe Go Quellcode durchsucht, aber ich habe es immer noch nicht herausgefunden. Wenn jemand das schon getan hat, könntest du es bitte teilen?
AKTUALISIERT: Dank @fserb, ich bin eine Dokumentation aus den Quellen Go Posting:
CGO ermöglicht die Erstellung von Go Pakete, die C-Code aufrufen.
Verbrauch: CGO [Compileroptionen] file.go
Die Compiler-Optionen durch uninterpretiert geben werden, wenn gcc Aufruf der C-Teile des Paket zu kompilieren.
Der Eingang file.go ist eine syntaktisch gültig Go-Quelldatei, die das pseudo-Paket „C“ importiert und dann auf Typen bezieht sich wie C.size_t, Variablen, wie C.stdout oder Funktionen wie beispiels als C.putchar.
Wenn der Import von „C“ sofort durch einen Kommentar vorangestellt ist, ist, dass Kommentar als Header verwendet wird, wenn die C Teile des Pakets zu kompilieren. Zum Beispiel:
// #include <stdio.h> // #include <errno.h> import "C"
CGO transformiert die Eingabedatei in vier Ausgabedateien: zwei Go Quelle Dateien, eine C Datei für 6c (oder 8c oder 5c), und eine C-Datei für gcc.
Das Standardpaket makefile Regeln in Make.pkg automatisieren den Prozess der Verwendung cgo. Siehe $ GOROOT/misc/cgo/stdio und $ GOROOT/misc/cgo/gmp für Beispiele.
Cgo funktioniert noch nicht mit gccgo.
Interessant ... Ich werde sofort studieren. Vielen Dank! – jldupont