go 交叉编译避坑贴

我查看了网上很多的文章,但是实际编译出来的文件经常无法运行。现在我这里总结一下帮助大家避坑

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等

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容