golang交叉编译

2018-06-30  本文已影响110人  ouyangan

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=0SET GOOS=darwinSET GOARCH=amd64 go build main.go
SET CGO_ENABLED=0SET GOOS=linuxSET 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
上一篇 下一篇

猜你喜欢

热点阅读