• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Go模块编译问题及解决方法

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

对如下编译错误:

go build -o hello main.go

build command-line-arguments: cannot load google.golang.org/grpc: module google.golang.org/grpc: Get https://proxy.golang.org/google.golang.org/grpc/@v/list: dial tcp 172.217.24.17:443: i/o timeout

 

有两个解决办法:

1 代理方式

即在执行前先设置好环境变量“GOPROXY”和“GO111MODULE”:

export GO111MODULE=on

export GOPROXY=https://goproxy.io或者export GOPROXY=https://goproxy.cn

 

对于1.13及以上版本,可直接如下这样:

go env -w GOPROXY=https://goproxy.cn,direct

 

推荐使用七牛云的“goproxy.cn”,因为“goproxy.io”也不一定可用。

自动下载的包被放在用户的主目录(实为GOPATH目录,可执行“go env|grep GOPATH”确认)下,完整路径为:~/go/pkg/mod,如:

$ls -l ~/go/pkg/mod

total 0

drwxr-xr-x  4 guest  staff  128  2 21 14:11 cache

drwxr-xr-x  3 guest  staff   96  2 21 14:11 github.com

drwxr-xr-x  3 guest  staff   96  2 21 14:11 golang.org

drwxr-xr-x  4 guest  staff  128  2 21 14:11 google.golang.org

 

如遇到如下错误:

go: downloading google.golang.org/grpc v1.27.1

build command-line-arguments: cannot load google.golang.org/grpc: open /Users/guest/go/pkg/mod/cache/download/google.golang.org/grpc/@v/v1.27.1.lock: permission denied

请在执行时加上“sudo”,比如:

sudo go build -o hello hello.go

 

2 使用“go mod”的“replace”命令,将网络路径改成本地路径(当编译环境不能网络自动下载时解决办法),如:

$cat go.mod

module hello

 

go 1.13

 

require google.golang.org/grpc v1.27.1 // indirect

 

replace google.golang.org/grpc => /usr/local/go/src/google.golang.org/grpc

 

注意,replace中的不一定需出现在require中。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
golanggoget速度慢解决方法发布时间:2022-07-10
下一篇:
go6---slice切片发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap