2016-05-26 4 views
0

これを行う方法はありますか?Visual C++からGolangモジュールにアクセス

  1. Golangで書かれたライブラリL1を作成します。 L1はC言語の関数をエクスポートします。
  2. L1をビルドし、Visual C++の.libファイルを生成します。
  3. L1のC関数を呼び出して、Visual C++コードのL1を使用します。
+0

はいありがとうございます。 –

+0

ありがとうございます。あなたは誰のためにここでURLや何かを共有しますか? @江YD –

答えて

0

私が試したことがない、と私は、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++コードから使用するので、共有ライブラリが必要です。

関連する問題