2017-01-02 4 views
1

Goプログラムの一部は、コンパイルに数分かかるimport "C"を使用する非常に大きなCコードベースに依存しています。 Cライブラリを作成したり、Cプログラムと一緒にプリコンパイルするGoプログラムのブランチを作成する方法はありますか?メインプログラムをコンパイルするたびにCライブラリ全体を待つ必要はありません毎回再コンパイルするには?速度のためにCに依存するGoプログラムの一部をプリコンパイルする

答えて

2

Cソースコード全体をインポートする代わりに、コンパイルされたオブジェクトファイルとヘッダーファイルをリンクすることができます。 cgoにLDFLAGS引数を使用する方法については、https://golang.org/cmd/cgo/を参照してください。

this oneのように、Cコードをオブジェクトファイル(.a.oファイル)にコンパイルする方法については、他のオンラインドキュメントもあります。また、リンクしているオブジェクトファイルにコンパイルするための指示があるので、使用しているライブラリやMakefileを参照してください。

もしimport "C"を持ち、そのソースが変更されていないライブラリー、することもできますgo getこと、(あるいはgo installそれを)他の囲碁プログラムのコンパイルを行う、あなたの$GOPATH/pkgにそのコンパイルされたオブジェクトファイルを格納するものそれをより速くインポートしてください。

関連する問題