Goで簡単にクロスコンパイルする方法
goxとは?
並列でコンパイルするため高速
必要なものだけに絞ってクロスコンパイルできる
goのサポートするOSやアーキテクチャは非常に多い
GOOS=linuxみたいなのをシェルにしてもよいが、めんどくさい
Windowsだけ生成するバイナリに.exeをつけないといけなかったり...
導入方法
go get github.com/mitchellh/goxする
使い方
code:bash
gox \
-os="windows linux darwin" \
-arch="386 amd64" \
--output "dist/{{.Dir}}_{{.OS}}_{{.Arch}}/{{.Dir}}"
多分これが一番良く使う
作られるバイナリ
table:bin.csv
os arch bin
windows 386 dist/appname_windows_386/appname.exe
windows amd64 dist/appname_windows_amd64/appname.exe
darwin 386 dist/appname_darwin_386/appname
darwin amd64 dist/appname_darwin_amd64/appname
linux 386 dist/appname_linux_386/appname
linux amd64 dist/appname_linux_amd64/appname