go build -o [编译完成的可执行文件] [需要编译的.go文件]
#例如
go build -o myapp main.go
#确保编译的结果和当前运行环境相同
#查看arch
uname -a
在 Linux 中查看和修改 GOOS
和 GOARCH
环境变量:
1. 查看当前 Go 环境变量
# 查看所有Go相关的环境变量
go env
# 单独查看GOOS和GOARCH
go env GOOS GOARCH
2. 临时设置环境变量(仅对当前会话有效)
# 编译Windows 64位程序
GOOS=windows GOARCH=amd64 go build
# 编译Linux ARM程序
GOOS=linux GOARCH=arm64 go build
3. 永久修改环境变量
方法1:修改 ~/.bashrc 或 ~/.zshrc(推荐)
vim ~/.bashrc
在文件末尾添加:
export GOOS=linux
export GOARCH=amd64
然后使更改生效:
source ~/.bashrc
方法2:修改全局环境变量
sudo vim /etc/environment
添加:
GOOS=linux
GOARCH=amd64
4. 查看支持的OS/ARCH组合
go tool dist list
5. 常用组合示例
目标平台 | GOOS | GOARCH |
---|---|---|
Windows 64位 | windows | amd64 |
Windows 32位 | windows | 386 |
Linux 64位 | linux | amd64 |
Linux ARM | linux | arm |
Linux ARM64 | linux | arm64 |
macOS 64位 | darwin | amd64 |
macOS ARM | darwin | arm64 |
6. 注意事项
- 修改环境变量后,新打开的终端会话才会生效
- 交叉编译时需要CGO_ENABLED=0来禁用CGO:
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
- 可以使用
-v
参数查看详细编译过程:GOOS=windows GOARCH=amd64 go build -v
如果需要频繁切换不同平台的编译,建议使用临时变量设置方式,而不是永久修改环境变量。