LoginSignup
23
24

More than 5 years have passed since last update.

Golang開発環境構築 in MAC

Last updated at Posted at 2016-02-27

(*うまくいかないので継続監視中)
OS: OSX Yosemite 10.10.4
Darwin Kernel Version 14.4.0

1. VSCodeの利用

https://code.visualstudio.com/
からOSX用をダウンロードしてApplicationフォルダにコピーして起動します。

2. GO拡張のインストール

GO拡張もこちらを見ながら入れます。
こちらも参考に。
(F1を押すとテキスト入力が画面上部に表示されるので、extensionと入力して、InstallExtentionを選択。
ext installと表示されるのでgoと入れるとGoExtentionが選択可能になる。)

3. settings.json

スクリーンショット 2016-02-21 21.46.04.png
進んでいるといつの間にか、.vscodeというディレクトリができていて、その中にlaunch.jsonとtasks.jsonが作成されています。
新規にsettings.jsonを作成して下記コードをコピペして保存します。
*1"go.goroot"はwhereした結果で書き換えます。
*2"go.gopath"はecho #GOPATHした結果で書き換えます。
*3エディタを再起動しましょう。

{
    "go.buildOnSave": true,
    "go.lintOnSave": true,
    "go.vetOnSave": true,
    "go.buildFlags": [],
    "go.lintFlags": [],
    "go.vetFlags": [],
    "go.useCodeSnippetsOnFunctionSuggest": false,
    "go.formatOnSave": false,
    "go.formatTool": "goreturns",
    "go.goroot": "/usr/local/go",
    "go.gopath": "/Users/murotanimari/work"
}

F1を押すと下記のように使えるコマンドが増えています。
スクリーンショット 2016-02-21 21.53.01.png

4. delveのインストール

OSX用には自己証明の作成が必要みたいです。
delve

4.1 証明書作成

1.キーチェーンアクセスを開く
2.キーチェーンアクセス>証明書アシスタント>証明書作成
名前:dlv-cert
固有名のタイプ:自己署名ルート
証明書のタイプ:コード署名
デフォルト無効化をチェック
3.続ける
4.有効期間を任意に変更
5.続けてください。
6.証明書の場所を指定
キーチェーン: システム
(もしエラーになる場合にはloginキーチェーンに格納してexportしてください。その後Systemキーチェーンに格納できます。)
スクリーンショット 2016-02-21 22.07.37.png
7.公開/秘密鍵アクセス制御変更
(Yosemite以降は)右クリック>情報を見る>アクセス制御
この項目を仕様を全てのアプリケーションに許可へ変更保存
8.再起動
1.キーチェーンアクセスを閉じる
2.taskgatedをkillするかOS再起動

4.2. delveのmake

*1 taskgatedをkillします

*2 makeの引数として先ほど作成した証明書を指定します。

cd ~/work/src/github.com/derekparker
git clone https://github.com/derekparker/delve.git
cd delve
sudo su
GO15VENDOREXPERIMENT=1 CERT=dlv-cert make install

4.3. デバッガ動作確認

delvコマンドがちゃんと動くか確認します。
パスなどの設定が間違っていて動かない場合には適宜修正します。

cd $GOPATH
cd src/github.com/derekparker/delve/cmd/dlv
$GOPATH/bin/dlv debug main.go

スクリーンショット 2016-02-27 14.08.27.png

Rootでないと動かない場合に下記のようなエラーが出ます。

[murotanimari]$ $GOPATH/bin/dlv debug main.go
could not launch process: could not fork/exec

5. launch.jsonの設定

一旦VSCを再起動してlaunch.jsonを作成します。

launch.json
{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Launch",
            "type": "go",
            "request": "launch",
            "mode": "debug",
            "program": "${workspaceRoot}",
            "env": {},
            "args": []
        }
    ]
}

6. デバックExtensionのビルドと追加

~/.vscode/extensionsに移動し何もないことを確認します。

rm -rf ~/.vscode/extensions/lukehoban.Go
cd ~
git clone https://github.com/Microsoft/vscode-go
cd vscode-go
npm install

他のツールもインストールします。

go get -u -v github.com/nsf/gocode
go get -u -v github.com/rogpeppe/godef
go get -u -v github.com/golang/lint/golint
go get -u -v github.com/lukehoban/go-find-references
go get -u -v github.com/lukehoban/go-outline
go get -u -v sourcegraph.com/sqs/goreturns
go get -u -v golang.org/x/tools/cmd/gorename
go get -u -v github.com/tpng/gopkgs
go get -u -v github.com/newhook/go-symbols

7. VSCで起動

root以外のユーザーで起動するのでエラーが出てしまいます・・・・。
sudoでVSCを起動しても起動時には関係ないみたいです・・・。

VSCODE_CWD="$PWD" sudo open -n -b "com.microsoft.VSCode" --args $* ;

スクリーンショット 2016-02-27 16.38.53.png

23
24
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
23
24