本文主要是介绍解决go build报错cannot find main module; see 'go help modules',希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
描述:
在学习golang的过程中,在$GOPATH/src/github.com/xxx/hello目录下执行go build和go test都会报下面的错误
go: cannot find main module; see ‘go help modules’
解决方案:
由于之前设置过GO111MODULE=on,所以使用下面的命令解决
$ go mod init hello
生成了一个go.mod文件,然后再执行go build成功
原因:
之前为了提高依赖包的下载速度,使用了goproxy
然后开启的时候使用了以下命令
$ go env -w GO111MODULE=on
$ go env -w GOPROXY=https://goproxy.cn,direct
这使得go默认管理依赖的方式变成了go module模式,即依赖一个go.mod文件,其中描述了项目依赖的包和版本(类似于npm package.json,maven的pom.xml)
而目录中没有go.mod文件,所以go不知道主模块是什么,所以无法编译
深入探究
go语言在诞生之时,没有提供随之的包管理工具,而是使用go get来下载依赖包,并放在$ GOPATH / src
下,并且没有使用版本控制,以为着每次都会拉取master分支的代码,软件包的代码放在src/github.com/xx/xx下面
而Go 1.11之后的版
这篇关于解决go build报错cannot find main module; see 'go help modules'的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!