#Go言語のクロスコンパイル
##Linux(Ubuntu14.04) -> Windows
###前準備(Golangをソースコードからインストール)
// バージョン管理ツールのインストール(Golangはmercurialで管理されているため)
sudo apt-get install mercurial
// パスを設定(今回はこれ)
GOBIN=$GOROOT/bin
PATH=$PATH:$GOBIN ```
// ソースコードのダウンロード
```hg clone -r release https://go/googlecode.com/hg/ $GOROOT```
###Golang環境をビルド
```cd $GOROOT/src
./all.bash```
###実行ファイルの生成
```GOOS=windows GOARCH=amd64 go build test.go ```
###[注意点]
[apt-get install golang]もしくは[apt-get install gccgo-go]でもインストールはできる。
しかし、そのままだとWindows用exeを作成し実行すると正常に生成できていないので実行時にエラーが発生する。
Windows用環境をビルドしようとしても一部ソースコードがないので出来ないことがあるのでソースコードからインストールするのが無難。
##Windows -> Linux(Ubuntu14.04)
// 一時的な環境変数を設定し、ビルド
```set GOOS=linux
set GOARCH=amd64
go build test.go ```
go build runtime: linux/amd64 must be bootstrapped using make.bat
エラー出てビルドできない
###前準備
// 他プラットフォーム用のビルド設定を作る
mingwをインストール
(環境変数PATHにmingwのbinフォルダを設定しておく)
```cd [golangインストールフォルダ]\src
set GOOS=linux
set GOARCH=amd64
make```
これでlinux/amd64へのビルド環境ができる
###実行ファイルの生成
```set GOOS=linux
set GOARCH=amd64
go build test.go```
書き出せる。実行できる。