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 |
|
完整的列表可以到 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。
更加完整详细说明可以参考文章: