Linux系统下编译Windows64位系统、Mac系统可执行程序
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go
Mac系统下编译Linux系统、Windows64位系统可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
Windows系统下编译Linux系统、Mac系统可执行程序
SET CGO_ENABLED=0
SET GOOS=darwin
SET GOARCH=amd64
go build main.go
SET CGO_ENABLED=0
SET GOOS=linux
SET GOARCH=amd64
go build main.go
- 交叉编译是不支持CGO的,所以需要禁用掉,也就是说如果你的代码中存在C代码,是编译不了的。
- 需要CGO支持的,要将CGO_ENABLED的0改为1,也就是CGO_ENABLED=1,此外还需要设置编译器。
-github上有这个工具:https://github.com/karalabe/xgo
它是一个docker镜像,里面集成了各种平台的编译器,按照它的教程,很轻松的可以编译出各个平台的二进制文件,
参考链接1
参考链接2