golang交叉编译

Mac 下编译 Linux 和 Windows 64位可执行进程

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build 
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

linux 下编译 Mac 和 Windows 64位可执行进程

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build 
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build

Windows 下编译 Mac 和 Linux 64位可执行进程

SET CGO_ENABLED=0 SET GOOS=darwin SET GOARCH=amd64 go build main.go
SET CGO_ENABLED=0 SET GOOS=linux SET GOARCH=amd64 go build main.go

GOOS:目标平台的 操作系统 (darwin、freebsd、linux、windows) GOARCH:目标平台的体系 架构 (386、amd64、arm) 交叉编译不支持 CGO 所以要禁用它

https://github.com/golang/go/blob/master/src/go/build/syslist.go#L8:31
package build
const goosList = "android darwin dragonfly freebsd js linux nacl netbsd openbsd plan9 solaris windows zos "
const goarchList = "386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le

猜你喜欢

转载自blog.csdn.net/templarzq/article/details/84964692