Ubuntu下Golang跨平台编译方法
在Ubuntu上,通过设置GOOS和GOARCH环境变量,无需额外工具链,即可用gobuild将Go代码交叉编译为Windows、macOS、Linux等平台的可执行文件,文件名自动适配,取消设置可恢复本地编译。此方法简洁高效,支持跨平台分发。
Ubuntu 下 Golang 跨平台编译方法
在 Ubuntu 上进行 Golang 开发时,跨平台编译是常见需求。通常无需为了生成 Windows 程序而切换设备。Go 的交叉编译机制比较直接,只需要调整几个环境变量,就可以将代码编译为主流平台的可执行文件。下面介绍具体操作方法。

第一步:确认已安装 Go
开始之前,先确认系统中已经安装 Go。如果尚未安装,可前往 https://golang.org/dl/ 下载适用于 Ubuntu 的版本,也可以直接通过包管理器安装。
第二步:设置 GOOS 和 GOARCH 环境变量
打开终端后,设置两个关键环境变量:GOOS 和 GOARCH。其中,GOOS 用于指定目标操作系统,GOARCH 用于指定目标架构。例如,要编译 Windows 64 位程序,可执行以下命令:
export GOOS=windows
export GOARCH=amd64
常见目标平台组合如下:
- macOS(Darwin):
GOOS=darwin,GOARCH=amd64 - Linux:
GOOS=linux,GOARCH=amd64(默认即为该组合,也可以不设置) - FreeBSD:
GOOS=freebsd,GOARCH=amd64 - OpenBSD:
GOOS=openbsd,GOARCH=amd64 - NetBSD:
GOOS=netbsd,GOARCH=amd64
除了以上常见平台外,Go 还支持更多目标架构和系统,例如 ARM、MIPS 等,不过上述组合更适合日常开发和部署场景。
第三步:执行 go build 进行编译
环境变量设置完成后,直接使用 go build 编译源文件。假设入口文件为 main.go,可运行:
go build main.go
编译成功后,当前目录中会生成对应平台的可执行文件。文件名和扩展名会根据目标系统自动适配,例如在 Windows 目标下会生成带有 .exe 后缀的文件。生成后即可放到对应系统中运行,一般不需要额外配置。
第四步:恢复本地平台编译环境
如果后续需要切回当前 Ubuntu 平台进行默认编译,可以取消之前设置的环境变量:
unset GOOS
unset GOARCH
执行后,环境变量会恢复为默认状态。也可以直接关闭当前终端并重新打开,效果相同。
Ubuntu 下使用 Go 进行交叉编译总结
整体来看,Go 在 Ubuntu 下的跨平台编译流程非常简洁,不需要额外安装工具链,也不需要修改源代码。通过设置 GOOS 和 GOARCH,再配合 go build,即可快速生成适用于不同操作系统和架构的可执行文件,适合日常开发、分发工具以及多平台部署使用。
