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报错如何解决这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程之家,小编将为大家推送更多相关知识点的文章,欢迎关注!

相关文章

什么是Go的接口? 接口可以说是一种类型,可以粗略的理解为他...
1、Golang指针 在介绍Golang指针隐式间接引用前,先简单说下...
1、概述 1.1 Protocol buffers定义 Protocol buffe...
判断文件是否存在,需要用到"os"包中的两个函数: os.Stat(...
1、编译环境 OS :Loongnix-Server Linux release 8.3 CPU指...
1、概述 Golang是一种强类型语言,虽然在代码中经常看到i:=1...