Goland 报错:package coin is not in GOROOT 和 cannot find package “xxx“ in any of 解决方案

报错

报错提示1:
package coin is not in GOROOT
package coin is not in GOROOT (D:\GoLand\goland_sdk\go1.18.6\src\coin)
这种情况是只搜索 GOROOT 环境,而不搜索 GOPATH 路径
报错提示2
cannot find package "xxx" in any of
cannot find package "coin" in any of: D:\GoLand\goland_sdk\go1.18.6\src\coin

解决方案:

1. 添加项目路径到 “项目GOPATH”

在这里插入图片描述

2. 取消勾选启用Go模块集成

如果 goland 使用 go mod,import 自己写的包时,会下划线报错找不到包
我们要用的是 GOPATH 下 src 下的包,就要取消勾选启用Go模块集成
在这里插入图片描述

3. 设置 GO111MODULE

GO111MODULE 有三个值:off, on 和 auto(默认值)

  • GO111MODULE=off,go命令行将不会支持module功能,寻找依赖包的方式将会沿用旧版本那种通过vendor目录或者GOPATH模式来查找。
  • GO111MODULE=on,go命令行会使用modules,而一点也不会去GOPATH目录下查找。依赖包的存放位置变更为$GOPATH/pkg,允许同一个package多个版本并存,且多个项目可以共享缓存的 module
  • GO111MODULE=auto,默认值,go命令行将会根据当前目录来决定是否启用module功能。这种情况下可以分为两种情形:
    • 当前目录在 GOPATH/src 之外且该目录包含 go.mod 文件
    • 当前文件在包含 go.mod 文件的目录下面。

用 GOPATH 模式引入包从 src 目录下开始引入,需要

go env -w GO111MODULE=off

此时会在 GOPATH 路径下进行搜索,不使用 go mod

FAQ:
你自己的写的包必须在$GOPATH/src 下
在包中定义的函数首字母必须大写(外部可调用)

4. 添加本项目路径到 GOPATH 环境变量(1-3步都做了还不行的情况)

把本项目的路径添加到 GOPATH 环境变量 中
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/Syc1102g/article/details/126995995