カテゴリ: Go言語 更新日: 2025/12/19

Go言語のビルドの基本!go buildコマンドの使い方を初心者向けに解説

Go言語のビルドの基本!go buildコマンドの使い方
Go言語のビルドの基本!go buildコマンドの使い方

先生と生徒の会話形式で理解しよう

生徒

「先生、Go言語のプログラムを作ったんですけど、これってどうやって実行すればいいんですか?」

先生

「Goでは、go buildというコマンドを使うと、プログラムを実行可能なファイルに変換することができます。」

生徒

「実行可能なファイルって、例えばWindowsなら.exeファイルみたいなものですか?」

先生

「その通りです。Goではソースコードから直接コンピュータが理解できるファイルに変換する作業をビルドと言います。」

生徒

「じゃあ、go buildを使うだけでプログラムが動くんですか?」

先生

「基本はそうですが、いくつか知っておくと便利なポイントがあります。順番に見ていきましょう。」

1. go buildとは何か?

1. go buildとは何か?
1. go buildとは何か?

Go言語のgo buildコマンドは、書いたソースコードをコンピュータが直接実行できる形に変換するための基本的なコマンドです。プログラミング未経験の方にとっては少し難しく聞こえるかもしれませんが、「Goで書いたプログラムを動かせるファイルにする作業」と考えると分かりやすいでしょう。 例えば、main.goというファイルは人が読むためのテキストですが、そのままでは実行できません。go buildを実行することで、Windowsならmain.exe、MacやLinuxならmainという実行ファイルが作られ、ダブルクリックやコマンド入力でプログラムを動かせるようになります。

実際には、次のようなとてもシンプルなプログラムでも、ビルドを行うことで実行可能になります。


package main

import "fmt"

func main() {
    fmt.Println("はじめてのGoビルド")
}

このような短いプログラムでも、go buildを使えば実行ファイルが生成されます。Go言語では、この「ビルド」という工程が必ず存在するため、まずはgo buildがプログラム実行の出発点であることを押さえておきましょう。

2. 基本的な使い方

2. 基本的な使い方
2. 基本的な使い方

まずはgo buildのいちばん基本となる使い方を確認しましょう。操作はとてもシンプルで、ターミナルやコマンドプロンプトを開き、main.goなどのGoファイルが保存されているフォルダへ移動します。プログラミング未経験の方は、「プログラムの置いてある場所で命令を実行する」と覚えると理解しやすいです。

次に、以下のコマンドを入力して実行します。これがGo言語で最も基本となるビルド操作です。


go build main.go

コマンドを実行すると、エラーが表示されなければビルドは成功です。同じフォルダ内に新しい実行ファイルが作成されます。Windows環境ではmain.exe、MacやLinux環境ではmainという名前のファイルが生成されます。このファイルが、実際に動かせるGoプログラム本体です。

ここでは画面に特別なメッセージが表示されないことも多いため、「何も起きていない」と感じるかもしれませんが、実行ファイルが増えていれば正しくビルドされています。まずはこの流れを一度体験し、go buildの基本操作に慣れていきましょう。

3. 実行ファイルの名前を指定する

3. 実行ファイルの名前を指定する
3. 実行ファイルの名前を指定する

go buildを実行したとき、何も指定しなければ実行ファイルの名前はソースコードのファイル名がそのまま使われます。しかし、作成したプログラムの内容が分かりにくい名前だったり、複数のGoプログラムを同じフォルダで管理したい場合は、実行ファイル名を自分で決められると便利です。

そのようなときに使うのが-oオプションです。次のように指定すると、実行ファイルの名前を自由に変更できます。


go build -o myprogram main.go

このコマンドを実行すると、main.goからmyprogramという名前の実行ファイルが生成されます。Windows環境では自動的にmyprogram.exeとなり、MacやLinuxではmyprogramという名前になります。 プログラムの内容に合わせた名前を付けておくことで、後から見返したときにも分かりやすくなり、初心者の方でもファイル管理がしやすくなります。

4. ディレクトリ単位でビルドする

4. ディレクトリ単位でビルドする
4. ディレクトリ単位でビルドする

Go言語では、ファイルを一つずつ指定しなくても、フォルダ(ディレクトリ)ごとにまとめてビルドできます。実際の開発では、1つのプログラムが複数のGoファイルで構成されることが多いため、この方法はとてもよく使われます。初心者の方は「プログラム一式が入った箱を丸ごとビルドする」とイメージすると分かりやすいでしょう。

例えば、myappというフォルダの中にmain.goや他のGoファイルが入っている場合、次のようにディレクトリ名を指定してビルドできます。


go build ./myapp

このコマンドを実行すると、myappディレクトリ内のmain.goを起点としてプログラム全体がビルドされ、実行ファイルが生成されます。ファイルが増えてもコマンドは変わらないため、プロジェクトが大きくなっても扱いやすいのが特徴です。

5. 実行結果の確認方法

5. 実行結果の確認方法
5. 実行結果の確認方法

生成された実行ファイルはターミナルやコマンドプロンプトから実行できます。


./myprogram

Windowsの場合は


myprogram.exe

と入力して実行します。これで、Go言語のプログラムが実際に動くことを確認できます。

6. go buildとgo runの違い

6. go buildとgo runの違い
6. go buildとgo runの違い

Go言語にはgo runというコマンドもあります。これはビルドしてすぐに実行する便利なコマンドです。


go run main.go

違いは、go buildは実行ファイルを生成するのに対して、go runは一時的にビルドしてその場で実行するだけです。開発中のテストにはgo run、配布用にはgo buildを使うのが一般的です。

7. 複数ファイルのビルド

7. 複数ファイルのビルド
7. 複数ファイルのビルド

Go言語では、複数のソースコードファイルをまとめてビルドすることも可能です。


go build main.go utils.go

この場合、main.goutils.goをまとめてビルドし、1つの実行ファイルが生成されます。複雑なプロジェクトでも、この方法で効率よくビルドできます。

8. ビルド時の依存関係管理

8. ビルド時の依存関係管理
8. ビルド時の依存関係管理

Goではgo.modというファイルを使って、外部パッケージの依存関係を管理します。ビルド前に


go mod tidy

を実行すると、必要な外部パッケージが自動でダウンロードされ、ビルドに必要な環境が整います。これにより、複数のライブラリを使ったプロジェクトでもスムーズにビルドできます。

9. クロスコンパイルで他のOS向けにビルド

9. クロスコンパイルで他のOS向けにビルド
9. クロスコンパイルで他のOS向けにビルド

Goの大きな特徴の一つにクロスコンパイルがあります。例えば、MacでWindows用の実行ファイルを作ることも可能です。


SET GOOS=windows
SET GOARCH=amd64
go build -o myprogram.exe main.go

このように環境変数を設定するだけで、異なるOSやCPUアーキテクチャ向けの実行ファイルを生成できます。

10. よくあるエラーと対処法

10. よくあるエラーと対処法
10. よくあるエラーと対処法

ビルド時に「packageが見つからない」と表示されることがあります。これは依存パッケージがダウンロードされていない場合に起こります。


go get github.com/user/package

このコマンドで必要なパッケージをインストールすれば解決します。また、go mod tidyを使って依存関係を整理するのもおすすめです。

まとめ

まとめ
まとめ

Go言語におけるビルド作業の全体像を振り返る

ここまでの記事では、Go言語でプログラムを実行可能な形にするためのビルド作業について、go buildコマンドを中心に詳しく学んできました。Go言語はソースコードを書くだけでは実行できず、必ずビルドという工程を通して、コンピュータが直接実行できるファイルを生成します。この流れを理解することは、Go言語を使った開発を進めるうえで欠かせない基礎知識です。 go buildは非常にシンプルなコマンドでありながら、単一ファイルのビルド、複数ファイルのビルド、ディレクトリ単位でのビルド、実行ファイル名の指定、さらにはクロスコンパイルまで幅広く対応しています。初心者の方でも基本的な使い方を覚えれば、実務や個人開発で困ることはほとんどありません。

go buildと開発フローの関係

Go言語の開発では、ソースコードを書く、ビルドする、実行して確認する、という流れを何度も繰り返します。開発途中の簡単な動作確認にはgo runが便利ですが、最終的に配布したり、サーバーに配置したりする場合には、必ずgo buildで実行ファイルを作成します。 実行ファイルを生成することで、Go言語がインストールされていない環境でもプログラムを動かせる点は、大きな強みです。特に業務システムやツール配布、CLIアプリケーション開発では、go buildの理解がそのまま実践力につながります。

ビルドオプションと依存関係管理の重要性

-oオプションを使った実行ファイル名の指定や、ディレクトリ単位でのビルドは、プロジェクトが大きくなるほど重要になります。また、go.modによる依存関係管理とgo mod tidyの活用によって、外部ライブラリを含むプロジェクトでも安定したビルドが可能になります。 依存関係が正しく管理されていないと、ビルドエラーや実行時エラーにつながるため、ビルド前に環境を整える意識を持つことが大切です。これは初心者の段階から身につけておきたい習慣と言えるでしょう。

まとめとしてのビルド確認サンプル


package main

import "fmt"

func main() {
    fmt.Println("go buildで生成された実行ファイルが動いています")
}

上記のようなシンプルなプログラムでも、go buildを実行することで実行ファイルが生成されます。この体験を通して、「ソースコードを書く」と「プログラムを動かす」の間にビルド工程が存在することを実感できたはずです。Go言語ではこの工程がとても分かりやすく、初心者でも安心して扱える点が魅力です。

クロスコンパイルの実用性

Go言語の大きな特徴として、クロスコンパイルのしやすさがあります。環境変数を設定するだけで、別のOSやCPU向けの実行ファイルを作成できるため、複数の環境で動作するツールを効率よく配布できます。これは他の言語では準備が大変なことも多く、Go言語が選ばれる理由の一つになっています。

先生と生徒の振り返り会話

生徒「go buildって、最初は難しそうに見えましたけど、基本は意外とシンプルなんですね。」

先生「そうですね。基本を押さえれば、あとは必要に応じてオプションを使うだけです。」

生徒「go runとgo buildの使い分けも理解できました。」

先生「開発中はgo run、配布や本番ではgo buildという意識が大切です。」

生徒「クロスコンパイルが簡単なのも、Go言語の強みですね。」

先生「その通りです。ビルドの仕組みを理解すると、Go言語の便利さがより実感できますよ。」

今回学んだGo言語のビルドの基本は、今後どんなGoプログラムを書く場合でも必ず役に立ちます。go buildの使い方、実行ファイルの扱い方、依存関係管理、クロスコンパイルまで理解できれば、初心者から一歩進んだ開発者としての土台が整います。ぜひ実際に手を動かしながら、Go言語のビルド作業に慣れていきましょう。

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のオブジェクト指向の特徴を完全ガイド!初心者でも理解できる他言語との違い
New2
Go言語
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
New3
Kotlin
Kotlinのクラス設計に役立つベストプラクティスまとめ|初心者でもわかるクラス設計の考え方
New4
Kotlin
Kotlinでアーキテクチャ設計の基本!MVC・MVP・MVVMの違いを解説
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.3
Java&Spring記事人気No3
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Kotlin
Kotlinのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.6
Java&Spring記事人気No6
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
No.7
Java&Spring記事人気No7
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.8
Java&Spring記事人気No8
Swift
Swiftのオプショナル型とは?初心者でもわかる使い方とアンラップの基礎