我查看了网上很多的文章,但是实际编译出来的文件经常无法运行。现在我这里总结一下帮助大家避坑
1、使用bash类终端进行编译(比如mac linux 或者windows下gitbash等)
- 编译linux可执行文件
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build xxx.go
- 编译mac可执行文件
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build xxx.go
- 编译windows可执行文件
CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build xxx.go
2、使用windows下的cmd编译
- 编译linux可执行文件
set CGO_ENABLED=0
set GOOS=linux
set GOARCH=amd64
go build xxx.go
- 编译mac可执行文件
set CGO_ENABLED=0
set GOOS=darwin
set GOARCH=amd64
go build filename.go
- 编译windows可执行文件
go build xxx.go
3、使用windows下的PowerShell编译
- 编译linux可执行文件
$env:CGO_ENABLED="0"
$env:GOOS="linux"
$env:GOARCH="amd64"
go build xxx.go
- 编译mac可执行文件
$env:CGO_ENABLED="0"
$env:GOOS="darwin"
$env:GOARCH="amd64"
go build xxx.go
- 编译windows可执行文件
go build xxx.go
另外需要注意:如果系统不是x86_64的,在GOARCH这里改正对应的系统架构,比如arm64等