跨平台编译 Golang可执行文件

陪她去流浪 桃子 2018年07月26日 编辑 阅读次数:6716

Go/Golang 的工具链支持跨平台编译其它平台的可执行文件,只需要传递两个环境变量即可。

一个是GOOS,用于指定 操作系统 类型,一个是GOARCH,用于指定 系统架构 类型。

比如,在 macOS 上编译 Windows/amd64 下的可执行文件,则在代码目录下执行以下命令:

$ GOOS=windows GOARCH=amd64 go build

,即可在目录下生成对应的可执行文件。

错误的组合将会编译错误:

$ GOOS=darwin GOARCH=ppc64 go build
cmd/go: unsupported GOOS/GOARCH pair darwin/ppc64

要查看当前的操作系统类型以及系统构架类型,可以执行下面的命令:

1
2
3
4
5
$ go env | egrep 'OS|ARCH'
GOARCH="amd64"
GOHOSTARCH="amd64"
GOHOSTOS="darwin"
GOOS="darwin"

完整的列表可以到 https://github.com/golang/go/blob/master/src/go/build/syslist.go 查看。

**目前支持以下 GOOS:**aix android darwin dragonfly freebsd hurd illumos js linux nacl netbsd openbsd plan9 solaris windows zos。

**和以下的 GOARCH:**386 amd64 amd64p32 arm armbe arm64 arm64be ppc64 ppc64le mips mipsle mips64 mips64le mips64p32 mips64p32le ppc riscv riscv64 s390 s390x sparc sparc64 wasm。

更加完整详细说明可以参考文章:

标签:Go · 跨平台