Mac 下编译 Linux 和 Windows 64位可执行进程
1
2
3 1CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
3
linux 下编译 Mac 和 Windows 64位可执行进程
1
2
3 1CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
2CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
3
Windows 下编译 Mac 和 Linux 64位可执行进程
1
2
3 1SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go
2SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go
3
GOOS:目标平台的 操作系统 (darwin、freebsd、linux、windows) GOARCH:目标平台的体系 架构 (386、amd64、arm) 交叉编译不支持 CGO 所以要禁用它
1
2
3
4
5 1https://github.com/golang/go/blob/master/src/go/build/syslist.go#L8:31
2package build
3const goosList = "android darwin dragonfly freebsd js linux nacl netbsd openbsd plan9 solaris windows zos "
4const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le
5