golang不同环境的交叉编译

一、设置环境变量方式

1.windows下编译Linux二进制文件

SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build test.g

2.windows下编译Mac

SET CGO_ENABLED=0
SET GOOS=darwin3
SET GOARCH=amd64
go build test.go

3.linux下编译window

CGO_ENABLED=0
GOOS=windows
GOARCH=amd64
go build test.go

二、通过gox编译

1.gox安装

go get github.com/mitchellh/gox
gox -h

2.使用

gox -os "windows" -arch amd64   //window amd64
gox -osarch="linux/amd64
gox -osarch "windows/amd64 linux/amd64"

三、架构说明

  • GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows
  • GOARCH:目标可执行程序操作系统构架,包括 386,amd64,arm
# 用于交叉编译,-o 后面为输出的二进制路径,可以自行修改
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o release/mac/amd64/bin
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o release/linux/amd64/bin
CGO_ENABLED=0 GOOS=freebsd GOARCH=amd64 go build -o release/freebsd/amd64/bin
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o release/windows/amd64/bin
CGO_ENABLED=0 GOOS=windows GOARCH=386 go build -o release/windows/386/bin

相关链接