Goビルド&クロスコンパイル
Go実践の概要
Goはシンプルで高速なコンパイルを特徴とする言語です。実際にプロジェクトを構築する際には、ビルドと実行のワークフローを理解することが重要です。Go実践では、go build、go run、go install などのコマンドを使い分け、開発サイクルをスムーズにします。
まず、go run はソースファイルを一時的にビルドして即座に実行します。これはデバッグや小さなスクリプトに便利です。一方、go build は実行可能ファイルを生成し、後で再利用できます。go install はビルドしたバイナリを $GOPATH/bin にインストールし、システム全体で呼び出せるようにします。
ビルドと実行
ビルドと実行は Go の開発フローの核です。以下に代表的なコマンドを示します。
# ソースをビルドしてバイナリを生成
go build -o hello hello.go
# 生成したバイナリを実行
./hello
# ソースを直接実行(ビルドは内部で行われる)
go run hello.go
ビルド時に -v フラグを付けると、依存関係の解決過程が表示されます。go build -x は実際に実行されるコマンドを詳細に出力し、デバッグに役立ちます。
クロスコンパイル
Go は環境変数 GOOS と GOARCH を設定するだけで、簡単にクロスコンパイルが可能です。例えば、Linux から Windows 用のバイナリを作る場合は次のようにします。
GOOS=windows GOARCH=amd64 go build -o hello.exe hello.go
同様に、ARM アーキテクチャ向けにビルドする場合は GOARCH=arm64 を指定します。クロスコンパイルは CI/CD パイプラインで複数プラットフォーム向けにビルドする際に不可欠です。
バイナリと環境変数
ビルドしたバイナリは静的にリンクされるため、実行環境に依存しません。ただし、実行時に環境変数を利用して設定を切り替えることが一般的です。例えば、デバッグモードを有効にするには次のようにします。
export APP_DEBUG=true
./hello
Go の標準ライブラリでは os.Getenv で環境変数を取得できます。環境変数を使うことで、同じバイナリを複数の環境で再利用でき、デプロイが容易になります。
最後に、go install でインストールしたバイナリは $GOPATH/bin(または $HOME/go/bin)に配置され、PATH に追加されている限り、どこからでも実行できます。これにより、開発者はコマンドラインツールを簡単に管理できます。
コメント
コメントを投稿