LoginSignup
11
13

More than 5 years have passed since last update.

[Go] macでGo(ver1.8)の開発環境を整える

Last updated at Posted at 2017-04-01

目次

  • インストール
  • Go環境情報の確認/設定
  • IDEの設定/サンプル実装/実行
  • コンソール実行

詳細

インストール

brewでインストールできます。

インストール
➜  ~ homebrew install go

インストール完了後、バージョンを確認してみます。

バージョン確認
➜  ~ go version
go version go1.8 darwin/amd64

Go環境情報の確認/設定

Go環境情報の確認

Go環境情報を確認するのに、go envを実行します。

Go環境情報を出力
➜  ~ 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環境情報を出力
➜  ~ go env GOPATH
/Users/omega/go
➜  ~ go env GOPATH GOROOT
/Users/omega/go
/usr/local/Cellar/go/1.8/libexec
➜  ~

参考:Goコマンドマニュアル

GOROOTはGOをインストールしたパスを示します。

GOROOTの確認
➜  ~ 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パス内に実行形式のファイルが配置されるためです。

GOPATH環境変数値の変更
➜  ~ 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
GOPATHのbinのパスを通す
➜  ~ 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」を選択、
image

開発作業するWorkSpaceをlocationに設定します。
image

プロジェクト画面で先ほど作成していたbaseディレクトリの位置で右クリック
image

[New]->[Go File]を選び、
image

goファイルを作成します。
image

IDEにGOROOT,GOPATHを設定します。
image

Golandのmenuから、[Goland-EAP]->[Preferences]->Go->GOROOTにて、GOROOTを選択。
image

同じく[Preferences]->Go->GOPATHにて、GOPATHを選択。
image

コードを書いていきます、コード補完されて快適。
image

以下のサンプルコードを書いて保存。

first.go
package main

import "fmt"

func main() {
    fmt.Println("go first!")
}

メニューの[Run]->Runを実行(適宜ショートカットで)、
image

実行結果が出力されました。

コンソール実行

IDEの時と同様に、コンソールコマンドからもコンパイルして実行してみます。

Goプログラムをコンパイルし実行
➜  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 パッケージ名は指定したパッケージについて、
依存関係も含めてコンパイルしますが、コンパイルしたパッケージのインストールは行われません。

main以外のパッケージを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パッケージと依存関係のコンパイルより

mainパッケージをbuild
➜  dev go build base
➜  dev ls
base bin  src   #baseという実行可能ファイルが出力されてる
11
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
13