在 Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或硬件架构的二进制文件。这在开发跨平台应用或构建特定平台的发布版本时非常有用。
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
$ CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
推荐 git 终端:
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
git 终端:
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
$ CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
$ CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
$ CGO_ENABLED=0 GOOS=linux GOARCH=386 go build main.go
注意不是 x86
上面几个示例中各环境变量的意思如下:
- [Golang 中的交叉编译详解 - 知乎 (zhihu.com)](https://zhuanlan.zhihu.com/p/649520911#:~:text=Golang 中的交叉编译在,Golang 中,交叉编译指的是在同一台机器上生成针对不同操作系统或硬件架构的二进制文件。 这在开发跨平台应用或构建特定平台的发布版本时非常有用。)
- Go 交叉编译 (跨平台编译) - 知乎 (zhihu.com)