Go:Unresolved reference xx(1)
1.环境
Goland版本:GoLand 2020.3.5
Go版本:1.16.4
EB@DESKTOP-K45IA6V MINGW64 ~/Desktop/test1280
$ go version
go version go1.16.4 windows/amd64
GoLand中选择的SDK版本:1.16.4
GoLand已经enable go modules integration:
GoLand的GOPATH设置如下:
项目的目录结构:
EB@DESKTOP-K45IA6V MINGW64 ~/Desktop/test1280
$ ls -l
total 2
-rw-r--r-- 1 EB 197609 25 May 26 14:24 go.mod
-rw-r--r-- 1 EB 197609 0 May 26 14:24 go.sum
-rw-r--r-- 1 EB 197609 66 May 26 15:28 main.go
项目的go.mod如下:
module test1280
go 1.16
项目的main.go内容:
package main
import "context"
func main() {
context.TODO()
}
2.问题
在新建的一个项目中,使用context包,GoLand均可以正常resolved reference。
后来do something(未知),再次打开项目,GoLand不能解析识别context包等标准包,显示:
Unresolved reference xxx
并且,重建索引并重启GoLand也是无效的:
此时,虽然GoLand不能够resolved reference我的context包(符号),但可在终端(Terminal)正常的go run、go build。
因此,应该是我的GoLand某些配置发生了变化导致不能解析引用。
另外,当我切换GoLand的SDK到低版本Go 1.12.1时,可以正常resolved reference。
3.解决
重装GoLand:安装GoLand 2021.1.2版本。
直接安装GoLand 2021.1.2版本,安装向导会自动引导删除旧版本GoLand:
安装完成后,重启reboot,然后重新打开项目,已可正常 resolved reference:
4.后记
只要重装GoLand即可,我从GoLand 2020.3.5升级到GoLand 2021.1.2版本,修复了此问题。
然后从GoLand 2021.1.2倒退回(重装)GoLand 2020.3.5版本,问题也已经不存在,可以正常解析。
可见,只需要重装GoLand即可解决问题。
目前,尚不清楚是我自身GoLand配置有问题,还是GoLand自身的一个BUG。
请了解的小伙伴也反馈给我呀!在此先谢过!
5.GoLand下载地址
GoLand 2020.3.5
https://download.jetbrains.com.cn/go/goland-2020.3.5.exe
GoLand 2021.1.2
https://download.jetbrains.com.cn/go/goland-2021.1.2.exe