Golang

介绍

一直以来都是在windows上写go,从来没有试过如何在windows环境下编译成mac或linux环境下可执行的文件。

当然,我的要求是在别的环境中不用安装go的环境。可直接运行的那种。

那么,如何做呢?网上找了很久,找到了一个总结的很到位的文章:Golang 在 Mac、Linux、Windows 下如何交叉编译。

在这里,我也做一份备忘。

mac

Mac 下编译 Linux 64位可执行程序

CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go

Mac 下编译 Windows 64位可执行程序

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
linux

Linux 下编译 Mac 64位可执行程序

CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go

Linux 下编译 Windows 64位可执行程序

CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
windows

Windows 下编译 Mac 64位可执行程序

SET CGO_ENABLED=0SET GOOS=darwin
SET GOARCH=amd64
go build main.go

Windows 下编译 Linux 64位可执行程序

SET CGO_ENABLED=0SET GOOS=linux
SET GOARCH=amd64
go build main.go
参数介绍
GOOS
GOARCH

交叉编译不支持 CGO 所以要禁用它

上面的命令编译 64 位可执行程序,你当然应该也会使用 386 编译 32 位可执行程序