Go を使用したカスタム ビルド ステップ
通常、Go プログラムのコンパイルには go build で十分ですが、追加のアクションやコマンドが必要な状況が発生する場合があります。
Go ツールの制限
Go ツール スイートは、ビルド中に任意のコマンドを実行するための直接のサポートを提供しません。 pkg-config ディレクティブは、C ライブラリをリンクするための特殊なケースであり、汎用的なソリューションではありません。
回避策
外部 Makefile:
1 つのオプションは、外部 Makefile を使用して追加のビルド ステップを調整することです。これは、次の構文を使用して go build コマンドによって明示的に呼び出すことができます。
<code class="go">go build -ldflags="-X main.version=$(shell cat VERSION)"</code>
Makefile では、追加のステップは、ビルド ターゲットのターゲットおよび前提条件として定義できます。
個別のコマンド:
または、追加のコマンドを前後に個別のステップとして手動で実行できます。 go build を呼び出します。このアプローチでは、より多くの手動介入が必要になりますが、より高い柔軟性が得られます。
ライブラリ パッケージのベスト プラクティス
これらの回避策にもかかわらず、ライブラリ パッケージは go get for easy でコンパイルできるように努める必要があります。依存関係の解決。複雑なビルド要件はスタンドアロン アプリケーション用に確保する必要があります。
今後の機能拡張
Go 1.4 リリースでは、開発者がソース上で前処理コマンドを実行できるようにするgenerate コマンドが導入されました。ファイル。ただし、これは依然として明示的に呼び出す必要がある別のステップであり、一般的な go build プロセスとは統合されません。
以上がここでは、質問と回答の形式と記事の本質を捉えた、いくつかのタイトル オプションを示します。 オプション 1 (「go build」の制限に重点を置く): * `go を超えてカスタム ビルド ステップを実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。