目次
- インストール
- Go環境情報の確認/設定
- IDEの設定/サンプル実装/実行
- コンソール実行
詳細
インストール
brewでインストールできます。
➜ ~ homebrew install go
インストール完了後、バージョンを確認してみます。
➜ ~ go version
go version go1.8 darwin/amd64
Go環境情報の確認/設定
Go環境情報の確認
Go環境情報を確認するのに、go env
を実行します。
➜ ~ go version
go version go1.8 darwin/amd64
➜ ~ go env
GOARCH="amd64"
GOBIN=""
GOEXE=""
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"
GOPATH="/Users/omega/go"
GORACE=""
GOROOT="/usr/local/Cellar/go/1.8/libexec"
...<中略>
➜ ~
なおgo env
コマンドに単一、もしくは複数の環境変数を指定して、
指定した環境変数を指定した順に出力することもできます。
➜ ~ go env GOPATH
/Users/omega/go
➜ ~ go env GOPATH GOROOT
/Users/omega/go
/usr/local/Cellar/go/1.8/libexec
➜ ~
参考:Goコマンドマニュアル
GOROOTはGOをインストールしたパスを示します。
➜ ~ cd /usr/local/Cellar/go/1.8/
➜ 1.8 ls
AUTHORS LICENSE bin
INSTALL_RECEIPT.json README.md libexec
➜ 1.8 ls -lt
total 96
-rw-r--r-- 1 omega admin 1063 4 1 13:16 INSTALL_RECEIPT.json
-rw-r--r-- 1 omega admin 33243 2 17 04:12 AUTHORS
-rw-r--r-- 1 omega admin 1479 2 17 04:12 LICENSE
-rw-r--r-- 1 omega admin 1399 2 17 04:12 README.md
drwxr-xr-x 5 omega admin 170 2 17 04:12 bin
drwxr-xr-x 16 omega admin 544 2 17 04:12 libexec
➜ 1.8 pwd
/usr/local/Cellar/go/1.8
➜ 1.8 cd libexec
➜ libexec ls -lt
total 144
-rw-r--r-- 1 omega admin 1366 2 17 04:12 CONTRIBUTING.md
-rw-r--r-- 1 omega admin 45710 2 17 04:12 CONTRIBUTORS
-rw-r--r-- 1 omega admin 1303 2 17 04:12 PATENTS
-rw-r--r-- 1 omega admin 5 2 17 04:12 VERSION
drwxr-xr-x 14 omega admin 476 2 17 04:12 api
drwxr-xr-x 5 omega admin 170 2 17 04:12 bin
drwxr-xr-x 44 omega admin 1496 2 17 04:12 doc
-rw-r--r-- 1 omega admin 5686 2 17 04:12 favicon.ico
drwxr-xr-x 3 omega admin 102 2 17 04:12 lib
drwxr-xr-x 15 omega admin 510 2 17 04:12 misc
drwxr-xr-x 7 omega admin 238 2 17 04:12 pkg
-rw-r--r-- 1 omega admin 26 2 17 04:12 robots.txt
drwxr-xr-x 68 omega admin 2312 2 17 04:12 src
drwxr-xr-x 268 omega admin 9112 2 17 04:12 test
➜ libexec
なおGOPATHは開発する際のWorkSpaceを示しています。
Go環境情報の設定
今回ホームディレクトリ($HOME)内のdevディレクトリで開発をしたいので、
GOPATH環境変数の値を変更してみます(Goの開発WorkSpaceを変更する)。
なお変更した後にGOPATHのbinへのパスを通しておきます。
これはこの後サンプルコードをコンパイル後、
binパス内に実行形式のファイルが配置されるためです。
➜ ~ echo $HOME
/Users/omega
➜ ~ find dev
find: dev: No such file or directory
➜ ~ mkdir dev
➜ ~ export GOPATH=$HOME/dev #GOPATH環境変数を$HOME/devに変更
➜ ~ go env GOPATH
/Users/omega/dev
➜ ~ export PATH=$PATH:$GOPATH/bin
最後にGOPATHのWorkSpace内にsrcディレクトリを作成した後、
src内にサプディレクトを作成します(1つのサブディレクトリが1つのパッケージに対応)。
➜ dev pwd
/Users/omega/dev
➜ dev mkdir src
➜ dev cd src
➜ src mkdir base
IDEの設定/サンプル実装/実行
GoのIDEはJetBrains社のGoglandのEAP版を使ってみました。
https://www.jetbrains.com/go/
インストールしたら、「Create New Project」を選択、
開発作業するWorkSpaceをlocationに設定します。
プロジェクト画面で先ほど作成していたbaseディレクトリの位置で右クリック
Golandのmenuから、[Goland-EAP]->[Preferences]->Go->GOROOTにて、GOROOTを選択。
同じく[Preferences]->Go->GOPATHにて、GOPATHを選択。
以下のサンプルコードを書いて保存。
package main
import "fmt"
func main() {
fmt.Println("go first!")
}
メニューの[Run]->Runを実行(適宜ショートカットで)、
実行結果が出力されました。
コンソール実行
IDEの時と同様に、コンソールコマンドからもコンパイルして実行してみます。
➜ dev go run src/base/first.go
go first!
またパッケージのコンパイル(依存関係含め)とインストールを行うには、go install パッケージ名
を使います。
※コマンドオプションの詳細はマニュアルをご参照
➜ dev go install base
➜ dev ls
bin src # binディレクトリが生成
➜ dev cd bin
➜ bin ls
base # 実行形式のファイルが作成されている
なおgo build パッケージ名
は指定したパッケージについて、
依存関係も含めてコンパイルしますが、コンパイルしたパッケージのインストールは行われません。
➜ dev find src/web
src/web
src/web/web.go
➜ dev go build web
➜ dev ls
bin src
➜ dev cd bin
➜ bin ls
base
例外として、以下の場合は実行可能ファイルがカレントディレクトリに出力されます。
コマンドラインで単一のmainパッケージが指定された場合、buildの結果として実行可能ファイルが出力されます。それ以外の場合はパッケージをコンパイルしますが結果は破棄されます。パッケージがbuildできることのチェックができるのみとなります。
Goパッケージと依存関係のコンパイルより
➜ dev go build base
➜ dev ls
base bin src #baseという実行可能ファイルが出力されてる