見出し画像

go buildの使い方と注意点について解説

今回はgo buildについて解説していきます。

go build

go buildコマンドはGo言語のプログラムをコンパイルし、実行可能なバイナリを生成するためのツールです。


go buildの使い方

基本的なコマンド

go build を実行すると、現在のディレクトリにあるソースコードをコンパイルして、実行可能ファイルを生成します。
ファイル名はデフォルトでディレクトリ名が採用されます。

go build


バイナリの名前指定

-o オプションを使用すると出力される実行ファイルの名前を指定することができます。

go build -o myapp


特定のファイルをビルド

 コマンドにファイル名を指定することで、特定のファイルだけをコンパイルすることが可能です。

go build main.go


ビルドモードの指定

-buildmode オプションを使うと、ビルドのモードを指定することができます。
例えば共有ライブラリとしてビルドする場合は以下のようになります。

go build -buildmode=shared -o libmyapp.so


go buildの注意点

GOPATHとGo Modules

Go 1.11以降ではGo Modulesが導入され、GOPATH外でのビルドが容易になりました。
go.modファイルが存在するディレクトリで go build を実行すると、そのモジュールの依存関係に基づいてビルドが行われます。


GOOSとGOARCH

環境変数を設定することで、異なるOSやアーキテクチャ向けにクロスコンパイルが可能です。
例えばWindows 64ビット用のバイナリをLinuxからビルドする場合は以下のようなコマンドを入力する必要があります。

GOOS=windows GOARCH=amd64 go build -o myapp.exe


リンカフラグ

-ldflags オプションを使用すると、リンカにフラグを渡すことができます。バイナリのサイズを減らすためにデバッグ情報を削除する場合などに便利です。

go build -ldflags="-s -w"


ビルドキャッシュ

 Goはビルドキャッシュを利用してビルド時間を短縮することができますが、稀に古いキャッシュが原因で予期せぬ問題が生じることがあります。
キャッシュをクリアするには以下のコマンドを使用します。

go clean -cache


golangをもっと詳しくなりたい方に

初めてのGo言語

Go言語の入門から応用まではこの一冊で網羅されています。説明も順序立てて説明されており完成度の高い参考書となっています。


詳解Go言語Webアプリケーション開発

こちらはGo言語の基礎知識を得たあとに読むことをすすめる本となっています。ハンズオン形式で手を動かしながら実装をしていくことができるため、実際の開発を意識しながらGo言語を学ぶことができます。

以下の記事では他にも筆者が実際に読んでおすすめしたい本をまとめています。


【Go入門】Golang基礎入門 + 各種ライブラリ + 簡単なTodoWebアプリケーション開発(Go言語)

まだGo言語の勉強を始めていない方、全くの初心者の方にはこちらのUdemy教材が最もおすすめです。
この教材ではgolangの基礎について網羅的に学ぶことができます。ただ見て学ぶだけでなく、講座の中でアプリ作成まで行うことで学んだことの理解をさらに深めることができます。


現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発

個人的に最も勉強になったのは「現役シリコンバレーエンジニアが教えるGo入門 + 応用でビットコインのシストレFintechアプリの開発」という教材です。
本格的なレクチャーに入る前に、なぜGoなのか、なぜFintechなのかについて説明されていることで、Goの概念や意味について大枠から理解することができます。

以下の記事では筆者が実際に受講したおすすめUdemy教材をまとめています。

※本ページではアフィリエイトリンク(PR)が含まれています


この記事が参加している募集

この記事が気に入ったらサポートをしてみませんか?