Golang的交叉编译
Golang
的交叉编译
交叉编译也即编译输出不同系统和架构下的 Golang
可执行文件,过程中需要修改三个变量即可,分别是:
GOOS
:可执行程序运行的操作系统(Linux
、Windows
)GOARCH
:可执行程序所在设备的CPU
架构(x86
、arm
等)CGO_ENABLED
:交叉编译,如果编译输出的可执行文件无法在当前系统执行,需要设置为0
。
1.编译 x86
架构上的 windows
可执行文件
$env:GOOS="windows"
$env:GOARCH="amd64"
$CGO_ENABLED=1
go build -o .\windows\hbaseCollectContact.exe
2.编译 x86
架构上的 linux
可执行文件
$env:GOOS="linux"
$env:GOARCH="amd64"
$CGO_ENABLED=0
go build -o .\x86\hbaseCollectContact
上传到主机上进行测试,能够正常运行。
3.编译 arm
架构上的 linux
可执行文件
$env:GOOS="linux"
$env:GOARCH="arm64"
$CGO_ENABLED=0
go build -o .\arm64\hbaseCollectContact
上传到主机上进行测试,能够正常运行。