Go言語のコマンド実行!go buildでのビルドとgo runでの実行方法

2025年4月16日水曜日

Go言語

Go言語のコマンド実行、特にプログラムのビルドと実行方法について、プログラミングの世界に足を踏み入れたばかりで「どうやるの?」と首をかしげている人もいるかもしれませんね。

Go言語には、書いたコードを動かすための便利なコマンド、`go build` と `go run` が用意されています。

この記事では、Go言語の基本操作である `go build` (ビルド) と `go run` (実行) の使い方、それぞれの違い、そしてどんな時にどちらを使えばいいのかを、分かりやすく解説していきます。

この記事で学べること

  • Go言語のビルドと実行の基本的な考え方
  • `go build` コマンドの使い方と実行ファイルの作成方法
  • `go run` コマンドの使い方とソースコードの直接実行方法
  • `go build` と `go run` の明確な違い
  • 状況に応じたコマンドの使い分け方
  • コマンド実行時のちょっとした注意点

Go言語のビルドと実行コマンドとは?開発の第一歩を踏み出そう

まず、なぜ「ビルド」や「実行」といった作業が必要なのか、簡単に触れておきましょう。

私たちが書くGo言語のソースコードは、人間にとっては読みやすいものですが、コンピューターが直接理解して動かすことはできません。

コンピューターが理解できる言葉(機械語)に翻訳してあげる必要があるんです。料理で例えるなら、レシピ(ソースコード)を元に、実際に食べられる料理(実行可能ファイル)を作るイメージですね。

Go言語には、その翻訳作業(ビルド)や、翻訳しつつ直接実行する作業(実行)を行うためのコマンドが標準で付いてきます。それが `go build` と `go run` なんです。

プログラムを書いたら、次は動かす番。これらのコマンドを使いこなすことが、Go言語での開発を進める上での基本中の基本となります。しっかり使い方をマスターしていきましょう!

Go言語のビルドコマンド `go build` の使い方を理解する

`go build` コマンドは、Go言語のソースコード(`.go` ファイル)をコンピューターが直接実行できる形式のファイル(実行可能ファイル)に変換(ビルド)するためのコマンドです。

ビルドによって作られた実行可能ファイルは、Go言語がインストールされていない環境でも動かすことができる場合があります(環境依存の機能を使っていない場合)。

完成したプログラムを誰かに渡したり、サーバーで動かしたりする際には、`go build` を使って実行可能ファイルを作成するのが一般的です。まさに、レシピから料理を完成させるプロセスですね!

`go build` の基本的な書き方(コマンド構文)

`go build` の使い方はとてもシンプルです。

ターミナル(WindowsならコマンドプロンプトやPowerShell、macOSならターミナル.app)を開いて、ビルドしたいGoファイルがあるディレクトリ(フォルダ)に移動してから、以下のコマンドを実行します。

特定のGoファイルをビルドする場合

go build ファイル名.go

例えば、`main.go` というファイルをビルドしたい場合は `go build main.go` と入力します。

カレントディレクトリにあるmainパッケージ全体をビルドする場合

go build

特別なファイル名を指定せず `go build` だけを実行すると、今いるディレクトリにあるmainパッケージ(通常は `main.go` を含むパッケージ)を探してビルドしてくれます。

`go build` の実行例(サンプルコードと実行結果)

それでは、実際に簡単なプログラムをビルドしてみましょう。

まず、`Hello, World!` と表示するだけの簡単なGoプログラムを作成します。好きなテキストエディタで以下の内容を `main.go` という名前で保存してください。

ソースコード (main.go)

package main

import "fmt"

func main() {
    fmt.Println("Hello, World!")
}

次に、ターミナルを開き、`main.go` を保存したディレクトリに移動します (`cd` コマンドを使います)。

そして、以下のコマンドを実行してみましょう。

ビルドコマンドの実行

go build main.go

コマンドを実行しても、ターミナルには何も表示されないかもしれませんが、それで正常です。

ファイルが作られたか確認してみましょう。ディレクトリ内のファイル一覧を表示するコマンド(macOS/Linuxなら `ls`、Windowsなら `dir`)を実行すると...

ファイル一覧の確認 (macOS/Linux の例):

ls
main      main.go  # <-- 'main' というファイルが増えている!

ファイル一覧の確認 (Windows の例):

dir
...
main.exe   # <-- 'main.exe' というファイルが増えている!
main.go
...

このように、`main` (macOS/Linux) または `main.exe` (Windows) という名前の新しいファイル(実行可能ファイル)が作られているはずです!

最後に、作られた実行可能ファイルを実行してみましょう。

実行可能ファイルの実行 (macOS/Linux):

./main

実行可能ファイルの実行 (Windows):

.\main.exe

実行結果:

Hello, World!

ちゃんと "Hello, World!" と表示されましたね!
`go build` はソースコードから実行可能な料理をしっかり作り上げてくれる、頼もしいコマンドです。

Go言語の実行コマンド `go run` の使い方を理解する

一方、`go run` コマンドは、ソースコードをビルドして、そのまま実行までを一気に行うコマンドです。

`go build` と違って、通常は実行可能ファイルを目に見える形では残しません(内部的には一時的にビルドしています)。

「ちょっとコードを書いて、すぐに動作を確認したい!」という時に非常に便利です。料理で例えるなら、味見のためにちょっとだけ火を通してみる、みたいな手軽さがあります。

`go run` の基本的な書き方(コマンド構文)

`go run` の使い方も簡単です。
実行したいGoファイル名を指定して、ターミナルでコマンドを実行します。

特定のGoファイルを指定して実行する場合:

go run ファイル名.go

例えば、`main.go` を実行したい場合は `go run main.go` と入力します。
`go build` と違い、基本的には実行したいファイル名を指定する必要があります。

`go run` の実行例(サンプルコードと実行結果)

先ほど `go build` で使った `main.go` を、今度は `go run` で実行してみましょう。
`main.go` があるディレクトリで、以下のコマンドを実行します。

実行コマンドの実行:

go run main.go

実行結果:

Hello, World!

どうでしょう? `go build` の時のように実行可能ファイルを作るステップなしに、コマンドを実行したらすぐに結果が表示されましたね。

ファイル一覧を確認しても、`main.go` 以外に新しい実行可能ファイルは作られていないはずです。

このように、`go run` はコードの動作をサッと確認したい時にとても役立ちます。

`go build` と `go run` の違いと比較!どっちを使うべき?

ここまでで、`go build` と `go run` のそれぞれの使い方を見てきました。

ここで、改めて両者の違いと、どんな時にどちらを使うべきかを整理しておきましょう。これを理解すれば、より効率的にGo言語の開発を進められます。

比較ポイント1:ビルド成果物(実行ファイル)の有無

一番大きな違いは、やはり実行可能ファイルが残るかどうかです。

  • `go build`: 実行可能ファイルを作成して残します。
  • `go run`: 実行可能ファイルを(通常は)残しません。
プログラムを配布したり、繰り返し実行したりする場合は `go build` で生成された実行ファイルを使うのが適しています。一方、開発中にちょっとした動作確認をするだけなら、ファイルが残らない `go run` の方が手軽でしょう。

比較ポイント2:実行までのステップと手軽さ

プログラムを実行するまでの手間も異なります。

  • `go build`: ビルド (`go build`) → 実行 (`./main` など) の2ステップが必要です。
  • `go run`: `go run main.go` の1ステップで実行まで完了します。
コードを書いてすぐに結果を見たい、という場面では `go run` の手軽さが光りますね。

特に開発の初期段階や、小さな変更を繰り返しながら試行錯誤する際には `go run` が便利です。何度も修正しては実行する、というサイクルに向いています。

Go言語コマンド実行時の注意点とTips

`go build` や `go run` を使う上で、初心者がつまづきやすい点や、知っておくと少し便利なことを紹介します。

ファイル名のタイプミス

`go run mainn.go` のようにファイル名を間違えると、当然ですがエラーになります。「そんなファイルないよ!」とGoに怒られる前に、ファイル名が正しいか確認しましょう。

カレントディレクトリの確認

コマンドを実行する前に、自分が今ターミナルでどこのディレクトリにいるかを確認する癖をつけると良いです(`pwd` コマンド (macOS/Linux) や `cd` コマンド (Windows) で確認できます)。ビルド・実行したいファイルがあるディレクトリでコマンドを打つのが基本です。

`main` パッケージと `main` 関数

`go build` や `go run` で直接実行できるプログラムを作るには、通常 `package main` と `func main()` の両方がソースコードに含まれている必要があります。これらがないと、「どこから実行を始めたらいいかわからないよ!」というエラーが出ることがあります。

出力ファイル名の指定 (build)

`go build` で作る実行ファイルの名前を変えたい場合は、`-o` オプションを使います。例えば `go build -o myapp main.go` とすると、`myapp` (Windowsなら `myapp.exe`) という名前の実行ファイルが作られます。

複数ファイルの場合 (run)

プログラムが複数の `.go` ファイルで構成されている場合、`go run main.go another.go` のようにファイル名を列挙するか、`go run .` のようにカレントディレクトリを指定して実行できます(後者は少し慣れが必要かもしれません)。
エラーが出ても焦らず、メッセージをよく読んでみてください。タイプミスや、今いる場所の間違いなどが原因であることも多いですよ。

【まとめ】Go言語のビルドと実行コマンドを使いこなそう!

今回は、Go言語の基本的なコマンド操作である `go build` と `go run` について解説しました。

要点をまとめると、以下のようになります。

  • `go build`: ソースコードから実行可能ファイルを作成するコマンド。プログラムの完成版を作ったり、配布したりする時に使う。
  • `go run`: ソースコードを直接コンパイルして実行するコマンド。実行ファイルは残らない。開発中の素早い動作確認に便利。
これらのコマンドは、Go言語で開発を進める上で避けては通れない、とても基本的な操作です。

それぞれの役割と違いを理解し、場面に応じて適切に使い分けることで、あなたのGo言語ライフはもっと快適になるはずです。

`go build` と `go run` をマスターすることは、Go言語開発の大きな一歩です。自信を持って、どんどんコードを書いて、動かしてみてくださいね!

このブログを検索

  • ()

自己紹介

自分の写真
リモートワークでエンジニア兼Webディレクターとして活動しています。プログラミングやAIなど、日々の業務や学びの中で得た知識や気づきをわかりやすく発信し、これからITスキルを身につけたい人にも役立つ情報をお届けします。 note → https://note.com/yurufuri X → https://x.com/mnao111

QooQ