前言
在编译前指定不同的环境变量,从而实现交叉编译
不同的操作系统修改环境变量的方式不尽相同,详见修改Go环境变量的方式
本编以在MacOS上进行交叉编译为例
准备工作
禁用CGO
编译为Windows平台可执行文件
1 2 3
| export GOOS=windows; export GOARCH=arm; go build main.go export GOOS=windows; export GOARCH=amd64; go build main.go export GOOS=windows; export GOARCH=386; go build main.go
|
编译为Linux平台可执行文件
1 2 3 4 5 6 7 8 9 10 11
| export GOOS=linux; export GOARCH=mips; go build main.go export GOOS=linux; export GOARCH=mipsle; go build main.go export GOOS=linux; export GOARCH=s390x; go build main.go export GOOS=linux; export GOARCH=mips64le; go build main.go export GOOS=linux; export GOARCH=mips64; go build main.go export GOOS=linux; export GOARCH=arm64; go build main.go export GOOS=linux; export GOARCH=ppc64; go build main.go export GOOS=linux; export GOARCH=ppc64le; go build main.go export GOOS=linux; export GOARCH=arm; go build main.go export GOOS=linux; export GOARCH=amd64; go build main.go export GOOS=linux; export GOARCH=386; go build main.go
|
1 2 3
| export GOOS=linux; export GOARM=5; export GOARCH=arm64; go build main.go export GOOS=linux; export GOARM=6; export GOARCH=arm64; go build main.go export GOOS=linux; export GOARM=7; export GOARCH=arm64; go build main.go
|
编译为MacOS平台可执行文件
1 2
| export GOOS=darwin; export GOARCH=amd64; go build main.go export GOOS=darwin; export GOARCH=arm64; go build main.go
|
完成
参考文献
知乎——刘sir
博客园——极速快码
博客园——springsnow
稀土掘金——acejunnan
Go Programming Language Wiki