go 语言学习

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

Golang 在 Mac、Linux、Windows 下如何交叉编译

  • Mac 下编译 Linux 和 Windows 64位可执行程序
CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
  • Linux 下编译 Mac 和 Windows 64位可执行程序
CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build main.go CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build main.go
  • Windows 下编译 Mac 和 Linux 64位可执行程序
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

GOOS:目标平台的操作系统(darwin、freebsd、linux、windows)
GOARCH:目标平台的体系架构(386、amd64、arm)
交叉编译不支持 CGO 所以要禁用它


go 1.13:go build -v -mod=vendor就会取vendor下的目录

go 1.14:之后go build -v 之后如果目录下有vendor目录会取vendor目录中的库

  • 设置GOPRIVATE

再来说centos系统:与windows设不设GOPRIVATE都一样的情况略有差异,linux上必需要先设置环境变量GOPRIVATE="我的gitlab地址",告诉go这是一个私有仓库,不要用代理去拉,而是直接拉。


go 工具

go vet` 检测代码可能的错误,使用 `go vet ./test.go


go 1.13 拉取指定版本:
go get github.com/cucumber/godog@v.8.0
如果遇到 SECURITY ERROR This download does NOT match the one reported by the checksum server. The bits may have been replaced on the origin server, or an attacker may have intercepted the download attempt. 需要

go clean -modcache
export GOSUMDB=off && go get github.com/cucumber/godog@v0.8.0 //GOSUMDB会去掉安全校验


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

本文来自:简书

感谢作者:佛手瓜

查看原文:go 语言学习

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

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