Go编译为可执行程序
Go语言编译
在项目根目录(main函数所在的目录)打开终端,运行下面的语句进行编译
go build .
注意后面有个 空格 和 . 符号
交叉编译
在Windows x86环境开发,但需要将程序部署到 Linux ARM64环境下时
就需要使用Go的交叉编译功能
Go提供环境变量 ( 详见 http://go.dev/wiki/ )
GOOS: GO操作系统(OS)用于设置目标编译的操作系统,如 windows linux darwin (MacOS)
GOARCH:Go架构 (Architecture)用于设置CPU所示使用的指令集,如 amd64 (x86) arm64
因此可以通过设置环境变量来选择编译的平台和指令集架构
例如:编译 Linux ARM64 程序 可以这样做
go env -w GOOS=linux go env -w GOARCH=arm64 go build .
但这种方式有个缺点每次都得将Go环境的变量改回来,不然编译的程序将一直是指定的平台
推荐的做法是使用临时的变量设置
例如 Windows CMD 窗口可以这么做,首先得进入 CMD 不然 SET 无效
CMD SET GOOS=linux SET GOARCH=arm64 go build .
类 Unix 系统可以这样做 ( MacOS Linux )
GOOS=windows GOARCH=amd64 go build .