これを行うためのさまざまな方法を見てきましたが、多くのラッパーとコールバックを使用する必要があるという点で理想的な方法はありません。これを行う簡単な方法はありますか?
たとえば、次のようになります。
//foo.go
package foo
import "C"
//export SayFive
func SayFive() int {
return 5
}
これは最小限に抑えられており、この時点でできることはSayFive
、C でその関数を呼び出すことだけです。
ただし、このファイルの先頭にはありません。それができるのは非常にシンプルで便利ですが、私は次のような方法を探しています:
//foo.c
#include <stdio.h>
int main() {
int a = SayFive();
}
上記のような例を見てきましたが、#include "_cgo_export.h"
それは完全に理にかなっていますが、それを実行してコンパイルしようとすると失敗します。
これを可能にするプロセス全体を説明できる人はいますか?