Go 在 Linux 下的跨平台开发指南
一 环境统一与版本管理
gvm install go1.21.5 && gvm use go1.21.5 --default。二 依赖管理与本地开发
go mod init <module>;新增依赖后执行 go mod tidy 清理未使用依赖并补全缺失项;提交 go.sum 保障可重现构建。FROM golang:1.21-alpine
WORKDIR /app
COPY go.mod go.sum ./
RUN go mod download
COPY . .
RUN go build -o app .
CMD ["./app"]
三 交叉编译与多平台构建
# Linux amd64 -> Windows amd64
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o app.exe
# Linux amd64 -> macOS arm64
CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o app-darwin-arm64
# 查看支持的所有平台
go tool dist list
//go:build linux)与文件后缀(如 app_linux.go)隔离平台代码,减少条件编译侵入性。四 平台差异处理与运行时适配
五 交付发布与 CI 实践
go mod tidy、gofmt/golint/staticcheck、go test ./... 与多平台构建矩阵,失败即阻断合并;可结合 .env 管理非敏感配置,敏感信息使用 CI 的 Secrets。-ldflags "-X main.Version=$(git describe --tags)"),便于线上追踪。