交叉编译
1. 什么是交叉编译
交叉编译指的是在当前平台生成适用于其他平台(如不同操作系统或 CPU 架构)的可执行文件。
Go 内置强大的交叉编译支持,可通过设置环境变量实现。
2. 设置编译目标
通过设置 GOOS 和 GOARCH 变量指定目标平台。
常用组合如下:
| 平台 | GOOS | GOARCH |
|---|---|---|
| Windows 64 位 | windows | amd64 |
| macOS 64 位 | darwin | amd64 |
| Linux 64 位 | linux | amd64 |
3. 示例命令
编译一个 Windows 下运行的程序:
GOOS=windows GOARCH=amd64 go build -o app.exe
编译 Linux 平台程序:
GOOS=linux GOARCH=amd64 go build -o app
macOS 下编译 ARM 架构(如 M1/M2):
GOOS=darwin GOARCH=arm64 go build -o app
4. 常见问题
- Windows 下需使用
set设置环境变量,Linux/macOS 使用export - 目标平台不支持当前依赖时可能编译失败
交叉编译是 Go 部署和分发应用的强大工具,支持多平台构建无须额外配置。
相关内容
- 什么是 Go Go 是由 Google 开发的一种开源编程语言,以简洁、高效、并发编程支持强著称,广泛应用于后端开发、云原生和微服务等领域。
- Go 的特点与适用场景 Go 语言以高并发、快速编译、简洁语法和强大标准库著称,适用于构建高性能网络服务、微服务架构和云原生应用。
- 安装 Go(Windows/Linux/macOS) 本节介绍如何在 Windows、Linux 和 macOS 上安装 Go 语言开发环境,包含安装步骤、验证方法及常见注意事项。
- 设置环境变量 本节介绍如何为 Go 语言配置环境变量,包括 GOPATH、GOROOT、PATH 等关键变量,适用于 Windows、Linux 和 macOS 系统。
- 第一个 Go 程序(Hello World) 本节将带你编写第一个 Go 程序“Hello, World”,帮助你快速了解 Go 的基础语法和程序结构。
- Go Modules 简介 本节介绍 Go Modules 的基本概念与用法,它是 Go 官方推荐的依赖管理方式,支持版本控制、依赖隔离和构建一致性。