カテゴリ: Go言語 更新日: 2025/11/27

Go言語のクロスコンパイル入門!異なるOS向けにビルドする方法

Go言語のクロスコンパイルの基本!異なるOS向けにビルドする方法
Go言語のクロスコンパイルの基本!異なるOS向けにビルドする方法

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

生徒

「先生、私のパソコンはWindowsなんですけど、作ったGoプログラムをMacやLinuxでも動かしたいです。」

先生

「それならGoのクロスコンパイル機能を使えば、簡単に異なるOS向けのバイナリを作ることができます。」

生徒

「クロスコンパイルって何ですか?」

先生

「クロスコンパイルとは、開発している環境とは違うOSやCPUアーキテクチャ向けにプログラムをコンパイルすることです。たとえばWindowsで開発したプログラムをLinux向けに変換できます。」

生徒

「どうやってやるんですか?」

先生

「簡単です。環境変数を設定してgo buildを実行するだけです。」

1. クロスコンパイルの基本手順

1. クロスコンパイルの基本手順
1. クロスコンパイルの基本手順

Go言語では、GOOSGOARCHという環境変数を使ってターゲットOSとCPUを指定できます。例えば、WindowsでLinux向けバイナリを作る場合は以下のように設定します。


SET GOOS=linux
SET GOARCH=amd64
go build -o myapp main.go

これでmyappという名前のLinux向け実行ファイルが生成されます。

2. Mac向けのクロスコンパイル

2. Mac向けのクロスコンパイル
2. Mac向けのクロスコンパイル

Mac向けのバイナリを作りたい場合は、OSをdarwinに指定します。


SET GOOS=darwin
SET GOARCH=amd64
go build -o myapp main.go

これでMacの64ビット環境で実行可能なバイナリが作れます。

3. 注意すべきポイント

3. 注意すべきポイント
3. 注意すべきポイント

クロスコンパイルでは、OS固有の機能やライブラリを使っている場合、正しく動作しないことがあります。標準ライブラリを使う分には問題ありません。

また、Windows向けはmyapp.exe、LinuxやMac向けはmyappというように拡張子の違いに注意してください。

4. CPUアーキテクチャの指定

4. CPUアーキテクチャの指定
4. CPUアーキテクチャの指定

32ビットや64ビットなどCPUアーキテクチャを指定することも可能です。


SET GOOS=linux
SET GOARCH=386
go build -o myapp main.go

これで32ビット版のLinux向けバイナリが生成されます。開発者はターゲット環境に合わせてアーキテクチャを指定できます。

5. 複数OS向けにまとめてビルド

5. 複数OS向けにまとめてビルド
5. 複数OS向けにまとめてビルド

複数のOS向けにビルドする場合は、スクリプトを使うと便利です。


SET GOOS=linux & SET GOARCH=amd64 & go build -o myapp-linux main.go
SET GOOS=windows & SET GOARCH=amd64 & go build -o myapp-windows.exe main.go
SET GOOS=darwin & SET GOARCH=amd64 & go build -o myapp-mac main.go

このようにすると、一度に複数環境向けのバイナリを生成できます。

6. 依存関係の確認

6. 依存関係の確認
6. 依存関係の確認

クロスコンパイルを行う前に、モジュール管理ファイルgo.modを確認しておくと安全です。go mod tidyで依存関係を整理してからビルドすることをおすすめします。

7. 実践的な使い方

7. 実践的な使い方
7. 実践的な使い方

クロスコンパイルを使うと、開発者は自分のPCだけでなく、他のOSユーザー向けに簡単にプログラムを配布できます。チーム開発やオープンソースプロジェクトで特に役立ちます。

Go言語のクロスコンパイルは、環境変数とgo buildを理解するだけで簡単に使える非常に便利な機能です。

カテゴリの一覧へ
新着記事
Go言語の構造体でインターフェースを実装する方法を初心者向けにやさしく解説!
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説
Go言語の文字列フォーマット!fmt.Sprintfで簡単に出力を整形する方法
Go言語のエラーと例外の違いを初心者向けに整理!わかりやすく解説
人気記事
No.1
Kotlin・Go・Swift記事の人気No1
Swiftのwhile文とrepeat while文を完全マスター!初心者にもわかる繰り返し処理の使い方と違い
No.2
Kotlin・Go・Swift記事の人気No2
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.3
Kotlin・Go・Swift記事の人気No3
Swift入門ガイド|基本構文と書き方をマスターしよう
No.4
Kotlin・Go・Swift記事の人気No4
Kotlinの正規表現(Regex)の使い方をやさしく解説!文字列操作の基本を初心者向けに学ぼう
No.5
Kotlin・Go・Swift記事の人気No5
Kotlinのコンパニオンオブジェクトとは?初心者向けに使い方と役割をわかりやすく解説!
No.6
Kotlin・Go・Swift記事の人気No6
Kotlinで画面を作る!レイアウトXMLとビューの基本操作をやさしく解説
No.7
Kotlin・Go・Swift記事の人気No7
Kotlinのwhen式を完全ガイド!初心者でもわかるパターンマッチング的な使い方
No.8
Kotlin・Go・Swift記事の人気No8
Kotlinのコーディング規約(公式スタイルガイド)とは?読みやすいコードを書くための基本ルール