Goの開発環境 Eclipse+GoClipse(Mac OS X)


Goの開発環境を構築したときの手順をまとめておきます。
今回は、以下の環境を利用しています。

  • MacOS X 10.10.2
  • Go 1.4.2
  • Eclipse 4.4 (Eclipse IDE for Java EE Developers)
  • GoClipse 0.9.1

Goのインストール・設定

Homebrewでインストールします。

$ brew install go

正常にインストールできたか、バージョンを確認します。

$ go version
go version go1.4.2 darwin/amd64

環境変数の設定

Goを利用する上では、以下の環境変数を設定します。

  • GOROOT
    • Goのインストールディレクトリです。Goを自分でビルドした場合は設定が不要、など、いろいろとポリシーがあるようですが、ここでは素直にインストールディレクトリを指定します。Homebrewでインストールすると "/usr/local/opt/go/libexec/" になります。
  • GOPATH
    • ユーザ自身のワーキングディレクトリになります。"go install"したときのパッケージのインストール先になります。"go get"でリモートパッケージを取得する場合も、この配下にパッケージが配置されるようです。

ここでは、設定は .bash_profile に以下のように記述しておくことにします。

export GOROOT=/usr/local/opt/go/libexec
export GOPATH=$HOME/go/golocal
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin

GoGlipse のインストール・設定

前提として、JDK、Eclipse自体は、インストールされているものとします。

GoGlipseのインストール

以下のUpdateSiteから、最新版をダウンロードしてインストールします(Eclipse Marcketplace で公開されているのが、なぜか古いままなので)。

GoClipseのインストールが完了したら、Eclipseのメニューから"環境設定 -> Go"と進み、以下の設定を行います。

  • GOROOT
    • 環境設定で指定した"/usr/local/opt/go/libexec"を指定します。
  • GOPATH
    • ここでは空で設定しておきます。環境設定で指定した値を指定したら、パスがEclipseのプロジェクトのパス配下になってしまい、うまく動作しないみたいです。

Goスクリプトの作成・実行

Eclipseのメニューから、"Go Project" を選択して、プロジェクトを作成します。
プロジェクトを作成すると、自動的に以下の階層が作成されます。Go標準のディレクトリ構成になります。

<project>
├─bin
├─pkg
└─src

src配下に、Goスクリプトを作成します。

src/hello/hello.go
package main

import "fmt"

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

このスクリプトを実行して、コンソールに"Hello world!"と出力されればOKですね。

もし、コンパイルエラーにはなっていないのに、実行時に、"go install: no install location for directory"というエラーが発生する場合は、Goスクリプトの配置パスが問題です。
srcディレクトリ直下にGoスクリプトを配置していると、上記のエラーが発生します。

これで、実装自体は可能になります。
gofmtなども適用されるので、自動フォーマットもされます。言語標準で、フォーマッタが備わっているのは便利ですね。

デバッグ環境の設定

Go単体では、デバッグができません。
ブレイクポイントをしかけても、ストップせずに通過してしまいます。

GDBのインストール

Goの場合、GDBを利用して、デバッグを行います。この辺りは、ちょっと手間ですね。

Macでは、デフォルトではGDBはインストールされていないので、Homebrewでインストールを行います。

$ brew install homebrew/dupes/gdb

セキュリティの設定

Macの場合、GDBをインストールしただけだと、セキュリティ上の制限で、利用できません。
証明書の設定が必要になるのですが、以下のサイトを参考にさせて頂きました。

Eclipseの設定

GDBの設定は、GoClipseの設定ではなく、C/C++の設定になります。
"環境設定 -> C/C++ -> Debug -> GDB"と進み、GDBの設定を行います。

"GDB debugger"の設定だけが必要になりますが、Homebrewでインストールした場合は、"/usr/local/bin/gdb"になります。
これで、Goをデバッグするための環境が整いました。

デバッグの実行

早速、デバッグをしてみます。

ブレイクポイントを仕掛けてみると、指定した箇所でストップし、右上の"Variables"タブの部分に、変数の内容が出ていますね!

無事、実装からデバッグを行うGoの開発環境が整いました。