コンテンツにスキップ

Go/goコマンド/build

出典: フリー教科書『ウィキブックス(Wikibooks)』

go buildコマンドは、Goのパッケージとその依存関係をコンパイルするためのコマンドです。コンパイルは行いますが、go installとは異なり、コンパイル結果をインストール(所定の場所に配置)はしません。

コンパイルされた出力ファイルの挙動

[編集]

go buildコマンドは、引数によって出力ファイルの挙動が変わります。

  • 単一のメインパッケージをコンパイルする場合: 実行可能ファイルが作成されます。ファイル名は、インポートパスの最後の非メジャーバージョンのコンポーネントに基づきます。例えば、go build example/samを実行するとsamという名前の実行ファイルが作成されます(Windowsでは.exeが付加されます)。
  • 複数の.goファイルをコンパイルする場合: 実行可能ファイルが作成されます。ファイル名は、引数で指定された最初のソースファイル名から決まります。例:go build ed.go rx.goを実行するとedという名前の実行ファイルが作成されます。
  • 複数のパッケージまたはメインパッケージではない単一のパッケージをコンパイルする場合: コンパイルは行われますが、その結果生成されるオブジェクトファイルは破棄されます。この場合、コンパイル可能であるかどうかのチェックのみが行われることになります。

主なオプション

[編集]

go buildには、コンパイルの挙動を詳細に制御するための多くのフラグ(オプション)があります。いくつか主要なものを以下に挙げます。

  • -o output: 生成された実行可能ファイルまたはオブジェクトファイルを、指定したファイル名またはディレクトリに強制的に出力します。
  • -race: データ競合の検出を有効にします。
  • -v: コンパイルされるパッケージの名前を出力します。
  • -trimpath: 生成される実行可能ファイルからファイルシステムのパス情報を削除します。これにより、再現性のあるビルドが可能になります。
  • -tags tag,list: ビルド時に考慮する追加のビルドタグをカンマ区切りで指定します。これにより、特定の環境や条件に合わせたコードのコンパイルを制御できます。