windows下go打包可执行程序
我们的开发环境和真正要部署的环境经常会遇到要不一样的情况,这里环境主要是指CPU的架构和操作系统,例如在X86的平台上编译的可执行文件在ARM平台上是不能运行的,反之亦然。这时候就需要交叉编译,交叉编译是在一个平台上生成另一个平台上的可执行文件。Golang 支持交叉编译,而且提供了非常方便的交叉编译方式。
Go交叉编译,主要涉及到以下几个环境变量的设置: GOARCH、GOOS和CGO_ENABLED。
GOARCH:编译目标平台的硬件体系架构(amd64, 386, arm, ppc64等)。
GOOS:编译目标平台上的操作系统(darwin, freebsd, linux, windows)。
CGO_ENABLED:代表是否开启CGO,1表示开启,0表示禁用。由于CGO不能支持交叉编译,所以需要禁用。
查看环境参数
go env
编译win32程序
go env -w GOARCH=386
go env -w GOOS=windows
go build [-o 编译后文件名] 源程序/包 [-ldflags "-H windowsgui"](不带弹窗)
编译win64程序
go env -w GOARCH=amd64
go env -w GOOS=windows
go build [-o 编译后文件名] 源程序/包 [-ldflags "-H windowsgui"](不带弹窗)
编译arm架构linux程序
go env -w GOOS=linux
go env -w GOARCH=arm
编译64位linux程序
go env -w GOOS=linux
go env -w GOARCH=amd64
版权声明:
本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自
Ezio's Blog!
喜欢就支持一下吧