golang交叉编译

Sixah · · 516 次点击 · · 开始浏览    
这是一个创建于 的文章,其中的信息可能已经有所发展或是发生改变。

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
param.png
  • 交叉编译是不支持CGO的,所以需要禁用掉,也就是说如果你的代码中存在C代码,是编译不了的。
  • 需要CGO支持的,要将CGO_ENABLED的0改为1,也就是CGO_ENABLED=1,此外还需要设置编译器。
    -github上有这个工具:https://github.com/karalabe/xgo
    它是一个docker镜像,里面集成了各种平台的编译器,按照它的教程,很轻松的可以编译出各个平台的二进制文件,
    参考链接1
    参考链接2

有疑问加站长微信联系(非本文作者)

本文来自:简书

感谢作者:Sixah

查看原文:golang交叉编译

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

516 次点击  
加入收藏 微博
上一篇:TCP 编程
下一篇:8.切片
添加一条新回复 (您需要 登录 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传