主题
交叉编译
1. 什么是交叉编译
交叉编译指的是在当前平台生成适用于其他平台(如不同操作系统或 CPU 架构)的可执行文件。
Go 内置强大的交叉编译支持,可通过设置环境变量实现。
2. 设置编译目标
通过设置 GOOS
和 GOARCH
变量指定目标平台。
常用组合如下:
平台 | GOOS | GOARCH |
---|---|---|
Windows 64 位 | windows | amd64 |
macOS 64 位 | darwin | amd64 |
Linux 64 位 | linux | amd64 |
3. 示例命令
编译一个 Windows 下运行的程序:
bash
GOOS=windows GOARCH=amd64 go build -o app.exe
编译 Linux 平台程序:
bash
GOOS=linux GOARCH=amd64 go build -o app
macOS 下编译 ARM 架构(如 M1/M2):
bash
GOOS=darwin GOARCH=arm64 go build -o app
4. 常见问题
- Windows 下需使用
set
设置环境变量,Linux/macOS 使用export
- 目标平台不支持当前依赖时可能编译失败
交叉编译是 Go 部署和分发应用的强大工具,支持多平台构建无须额外配置。