この記事は何か
Windows上でRuby初心者向け学習環境を作る - NaCl非公式ブログ :
を参考にした、ローカルにコピーするだけでOKなGo学習環境の作り方です。
注意点
本記事で作成する環境ではクロスコンパイルは行えません。クロスコンパイルもできる環境が欲しい人は、次のページの手順などを参考にMinGWの導入から行ってください。
Windows7 64bit版でGo言語のクロスコンパイルを試す - taknb2nchのメモ
[2017/1/18追記]
Go 1.5よりmake.batなど実行せずともクロスコンパイル可能になったようでした。
WindowsCrossCompiling · golang/go Wiki · GitHub
したがって、以下のようにGOOS
、GOARCH
環境変数を設定することで、普通にクロスコンパイルできました。また動作確認も取れました。
set GOOS=windows
set GOARCH=386
go build -o hello-windows-386.exe hello.go
set GOOS=linux
set GOARCH=amd64
go build -o hello-linux-amd64 hello.go
TL;DR;
-
Downloads - The Go Programming Languageから
go<バージョン番号>.windows-(386|amd64).zip
をダウンロード - 開発環境ルートフォルダー(例:
C:\go_env
)を作成し、ダウンロードしたGoのzipファイルを展開 - 開発環境ルートフォルダーの下にソースフォルダー(例:
C:\go_env\src
)を作成 - 必要な環境変数(
GOROOT
、GOPATH
、PATH
など)を設定してcmd.exeを起動するstart.bat
を作成
作り方
1. Goのダウンロード
何はともあれ、まずはGoのダウンロードから始めます。公式サイトのダウンロードページDownloads - The Go Programming Languageを開き、使用しているWindowsのCPUアーキテクチャに合わせてgo<バージョン番号>.windows-(386|amd64).zip
ファイルをダウンロードします(例:バージョン1.7.4、64bitならgo1.7.4.windows-amd64.zip
)。
なお、WindowsにはWOW64(Windows on Windows 64)という仕組みがあるため、64bit環境でも32bit版のGoは(変なことをしなければ)大体動作すると思います。もし非プログラマなクライアントに配布してファイル変換してもらう、といったような用途を想定しているのであれば、とりあえず32bit版を導入するというのもありだと思います。
2. ルートフォルダーの作成
次に丸ごとコピーするための元となるルートフォルダーを作成します。これはどこでもよいですが、ここではC:\go_env
としておきます。
3. Goの展開
1.でダウンロードしたzipファイルを、ルートフォルダーに展開します。展開後のフォルダー構成は次のようになります。
C:\go_env
|
+-go <-展開したフォルダー
|
+-api
|
+-bin
|
:
4. ソースフォルダーの作成
今度はGoのソースファイルを格納するためのフォルダーsrc
をルートフォルダー内に作成します。ソースファイルの*.go
ファイルは、src
フォルダーの下に作成するようにしてください。
C:\go_env
|
+-go
|
+-src <-作成したソースフォルダー
5. 起動用batファイル作成
最後に、Goの実行に必要な環境変数を設定してcmd.exe
を起動するstart.bat
ファイルをルートフォルダー内に作成します。
C:\go_env
|
+-go
|
+-src
|
+-start.bat <-作成したbatファイル
@echo off
@rem GoのフォルダーをGOROOTに指定
set GOROOT=%~dp0go
@rem Goのパッケージを配置するフォルダーをGOPATHに指定
set GOPATH=%~dp0.go
@rem Goの実行ファイルをPATHに追加
set PATH=%GOROOT%\bin;%GOPATH%\bin;%PATH%
@rem ソースフォルダーに移動
cd %~dp0src
@rem cmd.exeを起動する
%COMSPEC%
batファイル内に登場する%~dp0
は実行したbatファイルを配置したフォルダーパスを表します。例えば、GOROOT
に指定した%~dp0go
は結果としてC:\go_env\go
を表すことになります。
なお、go get
コマンドによってインストールされるGoパッケージの配置先は、GOPATH
環境変数への設定値の通りC:\go_env\.go
になります。.go
フォルダーは自動的に作成されるので明示的に作成する必要はありません。
GOROOT
、GOPATH
環境変数設定後、それぞれのbin
フォルダーをPATH
環境変数に追加しておきます。こうすることで、Go本体及びgocode
等の周辺ツールが起動できるようになります。
参考までにソースファイルを作成し、go get
を実行した後のフォルダー構成は次のようになります。
C:\go_env
|
+-.go
| |
| +-pkg
| | |
| | +-windows_amd64
| | |
| | +-github.com
| | |
| | +-...
| +-src
| |
| +-windows_amd64
| |
| +-github.com
| |
| +-...
|
+-go <-展開したフォルダー
| |
| +-api
| |
| +-bin
| |
| :
|
+-src
|
+-hello.go
使い方
ルートフォルダーのstart.bat
をダブルクリックして実行すると、cmd.exe
の黒い画面が起動します。あとは、src
フォルダー内にソースファイルを作成して、go run
やgo build
、go get
コマンドを実行するだけです。
なお、go tool tour
コマンドを実行してA Tour of Goをローカル起動することもできます。
配布
ルートフォルダーごと各PCにコピーしてやればOKです。start.bat
の内容も相対パスで指定しているため、アクセス権さえあればどこに配置しても大丈夫です(私は%UserProfile%\go_env
に配置しています)。
おまけ
Goの学習に使うエディターを好みのもの(例えばVim)にするなら、start.bat
にてPATH
に追加すれば、後は黒い画面でgvim hello.go
のように起動できます。
@rem Goの実行ファイルをPATHに追加
set PATH=%GOROOT%\bin;%PATH%
@rem エディタのパスをPATHに追加
set PATH=path\to\vim;%PATH%
また、Visual Studio Codeをインストーラーを使って既定の設定でインストールしていれば、すでにPATH
環境変数に追加されているはずなので、code hello.go
のように起動できます。