1.go项目在window下编译简易打包
????1).在windows下直接编译生成main.exe文件 ????????在项目main.go同级目录下执行以下命令 go build main.go   ????2).将当前目录下的main.go打包成gotest.exe文件(在windows下可以直接执行) ????????在项目main.go同级目录下执行以下命令 go build -o gotest.exe main.go

9294afd259b12.png)
2.项目在window下打包成其他系统可运行的文件
????1).在window下打包成linux ????????在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build -o main-linux main.go

将abc-demo-linux文件放入linux系统任何文件夹下,chmod 773 赋予文件可执行权限,到当前文件夹下执行./abc-demo-linux 命令即可执行文件(不需要安装go,就是二进制文件)就可以直接运行了
????2).在window下打包成window下可执行文件 ????????在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=windows
set GOARCH=amd64
go build -o main-windows.exe main.go

????3).在window下打包成mac系统可执行文件 ????????在项目main.go同级目录下,逐条执行以下命令
set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64
go build -o main-mac main.go

3.项目在Mac下打包成其他系统可运行的文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o abc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go
4.Linux主机编译Widows,MAC客户端
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o abc-demo-linux main.go
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o adc-demo-mac main.go
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o abc-demo-windows.exe main.go
5.使用goreleaser多平台打包
????1).安装goreleaser ????????goreleaser下载地址  ????????解压缩后配置环境变量
 ????????填好环境变量后一路确定就好了 
????????在cmd中查看版本 ????????goreleaser -v 
????2).在该项目根目录执行 goreleaser init 初始化配置 ????????在项目根目录下执行goreleaser init 命令,会生成一个.goreleaser.yaml 的文件
 
????3).添加git 支持同时添加tag 在项目根目录下执行一下命令
git init
git add .
git commit -m "go项目"
git remote add origin 自己的github地址
git push -u origin master
????4).使用goreleaser打包 ????????打包命令 ????????goreleaser --snapshot --skip-publish --rm-dist
|