nikuyoshiのブログ

記事の内容については個人の見解であり、所属企業の意見を代表するものではありません

Goのクロスコンパイルに関して

Goのクロスコンパイルができるように設定しました。 参考にさせていただいた素晴らしいエントリーがあるのでそちらを紹介します。

Go のクロスコンパイル環境構築 - Qiita

このスクリプトは build をするための shell の関数を作ってくれるのですが、 zsh となんか相性が悪いので使ってません。環境変数だけなんで、適当に自分で shell を書く程度で間に合いそうです。

と書いてあったので適当にシェルスクリプトを書いておきました。

naclをGOOSに指定して実行すると、普通にこけるのでシェルスクリプト内のリストから外しています。 (2014/08/24 現在) naclを指定した場合は以下の通りエラーが起きます。 必要としてないのであえて深追いしてないです。。。

go tool dist: open /usr/local/go/src/pkg/runtime/defs_nacl_amd64.h: No such file or directory

golang-crosscompile もnaclをサポートから外してるようです。

remove support for nacl/*, fixes #18 (again) · 9b2d5bd · davecheney/golang-crosscompile · GitHub

また、クロスコンパイル時、 -o オプションでファイル名を指定できるようです。C言語と同じですね。

GOOS=windows GOARCH=amd64 go build -o main-windows-x86_64.exe main.go

参考

compiler - Cross compile Go on OSX? - Stack Overflow