Golang 支持交叉编译,即在一个平台编译,在另一个平台运行,本文介绍Golang Pkg不同系统交叉编译。
参数说明
GOOS: 目标平台
- mac : darwin
- linux : linux
- windows : windows
GOARCH :目标平台的体系架构
- 386 也称 x86 : 32位操作系统
- amd64 也称 x64 : 64位操作系统,比如电脑一般都是amd64架构的
- arm 一般用于嵌入式开发,比如Android,IOS,Win mobile等
交叉编译不支持CGO_ENABLED,使用CGO_ENABLED=0设置。
编译命令
编译在Linux运行的包
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build
编译在Windows运行的包
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build
编译在Mac运行的包
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build
其他说明
若是在windows编译,需要采用如下命令设置变量:
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build