100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > cannot find main module 解决办法

cannot find main module 解决办法

时间:2021-04-11 22:16:44

相关推荐

cannot find main module 解决办法

做6.824 实验的过程中想要跑测试,发现go test -run 2A时 出现cannot find main module问题,测试跑不起来。

原因

这个原因是从GO1.11 版本开始引入了go.mod文件来对项目中的go源码的编译相关的内容进行管理,经常使用GO的同学可能深受go get或者GOPATH的配置之苦,这个时候引入了go.mod文件,就能将这一些配置释放出来,只需要将项目需要的依赖以及项目的路径放在go.mod中,交给GO本身来做即可。

这个时候一些老的GO项目本身没有配置go.mod文件(比如mit6.824 lab的源代码没有配置),所以编译的时候会出现这样的问题。

解决

如果不会配置go.mod文件,且项目中不需要太多的配置,只想编译运行,可以直接关闭GO编译对这个文件的依赖,通过设置GO环境变量GO111MODULEoff即可,export GO111MODULE=off

如果想要试用这个文件的功能,可以参考etcdgo.mod形态。

module go.etcd.io/etcd/v3 /*指定根目录*/go 1.16replace ( /*取代当前项目中的依赖包,即用左边的包取代右边的包*/go.etcd.io/etcd/api/v3 => ./apigo.etcd.io/etcd/client/pkg/v3 => ./client/pkggo.etcd.io/etcd/client/v2 => ./client/v2go.etcd.io/etcd/client/v3 => ./client/v3go.etcd.io/etcd/etcdctl/v3 => ./etcdctlgo.etcd.io/etcd/pkg/v3 => ./pkggo.etcd.io/etcd/raft/v3 => ./raftgo.etcd.io/etcd/server/v3 => ./servergo.etcd.io/etcd/tests/v3 => ./tests)require ( /*依赖的代码包及其版本*//bgentry/speakeasy v0./dustin/go-humanize v1./mattn/go-runewidth v0.0.9 // /spf13/cobra v1.1.1go.etcd.io/bbolt v1.3.6-0.0426205525-9c92be978ae0go.etcd.io/etcd/api/v3 v3.5.0-alpha.0go.etcd.io/etcd/client/pkg/v3 v3.5.0-alpha.0go.etcd.io/etcd/client/v2 v2.305.0-alpha.0go.etcd.io/etcd/client/v3 v3.5.0-alpha.0go.etcd.io/etcd/pkg/v3 v3.5.0-alpha.0go.etcd.io/etcd/raft/v3 v3.5.0-alpha.0go.etcd.io/etcd/server/v3 v3.5.0-alpha.0go.etcd.io/etcd/tests/v3 v3.5.0-alpha./zap v1.16.1-0.0329175301-/x/time v0.0.0-023141-/grpc v1.36.1gopkg.in/cheggaaa/pb.v1 v1.0.28)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。