交叉编译是指在一种计算机环境中,使用支持交叉编译的编译器,将源代码编译成可以运行在另一种计算机环境的可执行程序的过程。

Go语支持交叉编译,可以在一个平台上生成另一个平台的可执行程序。

Go语言交叉编译

要使用Go语言的交叉编译功能,只需要两步:

  • 设置GOOSGOARCH环境变量为目标环境的操作系统和架构。
  • 执行编译操作

示例

在Linux操作系统,编译arm架构 Linux操作系统的可执行程序

GOOS=linux GOARCH=arm go build -v 

在Windows操作系统,编译amd64架构 freebsd操作系统可执行程序

set GOOS=freebsd

set GOARCH=amd64

go build -v

平台相关的环境变量

$GO386
$GOARM
$GOMIPS
$GOMIPS64 
$GOPPC64

有效的 $GOOS,$GOARCH 组合以及平台相关环境变量

参见https://golang.org/doc/install/source#environment

国内可访问: https://golang.google.cn/doc/install/source#environment