go build 不同系统
Golang 支持在一个平台下生成另一个平台可执行程序的交叉编译功能。
Mac下编译Linux, Windows平台的64位可执行程序:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build test.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
Linux下编译Mac, Windows平台的64位可执行程序:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build test.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build test.go
Windows下编译Mac, Linux平台的64位可执行程序:
参数解释:
1.GOARCH:操作系统架构,值有amd64(64位操作系统)、386(32位系统)、arm(arm系统)。
2.GOOS:操作系统名,值有linux、windows、freebsd、darwin。
3.CGO_ENABLED:cgo是否启用,如果是window编译不包含cgo的项目,必须设置为0。