golang中package is not in GOROOT报错如何解决

这篇文章主要讲解了“golang中package is not in GOROOT报错如何解决”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“golang中package is not in GOROOT报错如何解决”吧!

运行go中本地包的时候如果出现这个报错,网上很多说是需要修改GO111MODULE=on, 但是对于我来说都没用, 最后发现是因为命名导致的。 记录如下。

为了表示各个文件名和路径之间的无关联性,我尽量把命名随意化和多样化。

首先在桌面上建立一个文件夹aaa

在文件夹里运行下面的命令生成mod文件

go mod init aaa

注意:这里的aaa和文件夹的名字aaa必须要一致。

然后在aaa根目录里创建文件bbb.go作为主程序入口文件,里面的包名必须是main。

然后在aaa根目录创建子目录这里我命名为ccc,里面创建一个文件叫eee.go,包名可以叫ddd。 在vscode里展示如图下所示。

golang中package is not in GOROOT报错如何解决

golang中package is not in GOROOT报错如何解决

然后在aaa的根目录打开命令窗口, 运行go run bbb.go就会成功调用到子包里面的方法。

为了不报错,这里有几个重点

第一,根目录文件夹名称xxx和go mod init xxx 必须要一致。

第二,主文件中import的是子包的目录路径,不能写子包的文件名或者包名。

第三,调用子包的方法的时候, 前缀必须是子包的包名(package名),和路径或者文件名无关。

感谢各位的阅读,以上就是“golang中package is not in GOROOT报错如何解决”的内容了,经过本文的学习后,相信大家对golang中package is not in GOROOT报错如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程之家,小编将为大家推送更多相关知识点的文章,欢迎关注!

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐