Go プログラムと C ライブラリをどのように接続しますか?
Go のソース コードを参照してきましたが、まだわかりませんでした。誰かがすでにそうしている場合は、共有していただけますか?
更新: @fserb のおかげで、Go ソースからいくつかのドキュメントを投稿しています。
Cgo を使用すると、C コードを呼び出す Go パッケージを作成できます。
使用法: cgo [コンパイラ オプション] file.go
gcc を呼び出してパッケージの C 部分をコンパイルする場合、コンパイラ オプションは解釈されずに渡されます。
入力 file.go は、疑似パッケージ「C」をインポートし、C.size_t などの型、C.stdout などの変数、または C.putchar などの関数を参照する、構文的に有効な Go ソース ファイルです。
「C」のインポートの直前にコメントがある場合、そのコメントは、パッケージの C 部分をコンパイルするときにヘッダーとして使用されます。例えば:
// #include <stdio.h> // #include <errno.h> import "C"
Cgo は、入力ファイルを 4 つの出力ファイルに変換します。2 つの Go ソース ファイル、6c (または 8c または 5c) 用の C ファイル、および gcc 用の C ファイルです。
Make.pkg の標準パッケージ makefile ルールは、cgo を使用するプロセスを自動化します。例については、$GOROOT/misc/cgo/stdio および $GOROOT/misc/cgo/gmp を参照してください。
Cgo はまだ gccgo では動作しません。