これを行う方法はありますか?Visual C++からGolangモジュールにアクセス
- Golangで書かれたライブラリL1を作成します。 L1はC言語の関数をエクスポートします。
- L1をビルドし、Visual C++の.libファイルを生成します。
- L1のC関数を呼び出して、Visual C++コードのL1を使用します。
これを行う方法はありますか?Visual C++からGolangモジュールにアクセス
私が試したことがない、と私は、Linuxを使用していますが、ここで私が知っているものです:
the golang documentationによると、あなたは(もヘルプbuildmodeを行く参照)、共有ライブラリに入るコードをコンパイルすることができます。
Cコードからgo機能を呼び出せるようにするには、go function shall be exported。 (これはlibstd.soにすべて行くの標準コードをコンパイルします
go install -buildmode=shared std
:
は、共有ライブラリにあなたの行くコードをコンパイルするためには、あなたも共有される1つに標準ライブラリを行く取得する必要がありますLinuxでは、名前はウィンドウ上で変わるかもしれません)。
そして最後に、あなたがあなたの共有ライブラリを取得するには、次のコマンドを使用することができます。
go install -buildmode=shared -linkshared [packages]
標準の共有ライブラリがで見つけることができます:下
GOROOT/pkg/GOOS_GOARCH_dylink/
と共有ライブラリ:
GOPATH/pkg/GOOS_GOARCH_dylink/
これはgo部分用です。
このコードをC++プロジェクトから呼び出す場合は、goライブラリをラップするCライブラリを作成する必要があります。あなたはそのためにいくつかのツールを使用することができます(私はSWIGについて聞いたことがありますが、試したことはありません)。
EDIT:静的なgoライブラリと似たようなことができますが、ライブラリタイプを指定せずにC++コードから使用するので、共有ライブラリが必要です。
はいありがとうございます。 –
ありがとうございます。あなたは誰のためにここでURLや何かを共有しますか? @江YD –