go 语言的跨平台编译
go提供了编译链工具,可以在一个开发平台上,编译出其它平台的可执行文件。默认情况下,是根据当前的机器生成的可执行文件,可以使用go env查看编译环境。
在跨平台时,需要修改三个环境变量
GOOS: 目标平台的操作系统(darwin freebsd linux windows)
GOARCH 目标平台的架构是32位或64位(386 amd64 arm)
交叉编译不支持CGO所以要禁用它
以下三种方式
window环境下
编译mac
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
编译为linux 64
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
mac 环境下
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Linux环境下
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go