go build 交叉编译各系统下的可执行文件(windows,linux,macOS)

方法

假设所需的输出文件名称为name,而当前目录的主函数为main.go

Mac下编译Linux, Windows平台的64位可执行程序

CGO_ENABLED=0  GOOS=linux    GOARCH=amd64 go build -o name main.go
CGO_ENABLED=0  GOOS=windows  GOARCH=amd64 go build -o name main.go

Linux下编译Mac, Windows平台的64位可执行程序

CGO_ENABLED=0  GOOS=darwin   GOARCH=amd64 go build -o name main.go
CGO_ENABLED=0  GOOS=windows  GOARCH=amd64 go build -o name main.go

Windows下编译Mac, Linux平台的64位可执行程序

SET CGO_ENABLED=0  SET GOOS=darwin3 SET GOARCH=amd64 go build -o name main.go
SET CGO_ENABLED=0  SET GOOS=linux   SET GOARCH=amd64 go build -o name main.go

参数的名字分别对应的是:
GOOS:目标可执行程序运行操作系统,支持 darwin,freebsd,linux,windows
GOARCH:目标可执行程序操作系统构架,包括386,amd64,arm

Tips

在windows下,如果需要生成.exe文件。可以直接在name后面加上后缀.exe

CGO_ENABLED=0  GOOS=windows  GOARCH=amd64 go build -o name.exe main.go

在macOS下,如果需要生成app,可以按以下方式操作

mkdir -p name.app/Contents/MacOS
go build -o name.app/Contents/MacOS/zTrans