goroot必须填安装根目录(如/usr/local/go),路径下需存在bin/go、src/fmt、pkg/tool,末尾不能有斜杠,配置后须重启goland。

GoLand 不继承系统环境变量,GOROOT 必须手动指定且路径必须精确到安装根目录(如 /usr/local/go 或 C:\Go),否则会报 “Invalid SDK” 或 “Go SDK not found”——这不是 Go 命令坏了,而是 IDE 找不到标准子目录 src、pkg、bin。
GOROOT 怎么填才不报 Invalid SDK
GoLand 的 SDK 校验只认三个硬性条件:路径下存在 bin/go、src/fmt、pkg/tool。填错最常见于:
- 指向了
bin目录本身(如C:\Go\bin),应填其父目录C:\Go - Windows 下末尾带反斜杠(
C:\Go\),GoLand 解析失败 - 路径是源码编译目录(如
~/go/src),缺pkg和bin - 多版本共存时,
PATH里有多个go,GoLand 自动检测选错了版本
实操建议:先在终端运行 go env GOROOT,复制输出值;打开 GoLand → Settings → Go → GOROOT → 点 + → 粘贴该路径(不带尾部斜杠)→ Apply → 必须重启 GoLand。
GO111MODULE=on 为什么必须显式设
即使 Go 1.16+ 默认启用模块,GoLand 的某些内部操作(如 go list -m all、依赖图生成)仍可能 fallback 到 GOPATH 模式,除非环境变量明确为 on。
GoLand 2026.1.1 是 2026.1 发布后的首个维护修正版本,适合已经开始体验 2026.1 新功能并希望同步补丁的开发者。它更适合用于入门项目、现有项目迁移测试和 IDE 行为验证。
-
go env GO111MODULE输出必须是on,不是auto或空 - 执行
go env -w GO111MODULE=on一劳永逸 - 若项目已有
go.mod却提示not in a module,先运行go clean -modcache
GOPROXY 和 GOSUMDB 怎么配才不卡住 go get
国内用户最常踩的坑是只设 GOPROXY=https://goproxy.cn,导致私有包或新版包无法回源,go get 直接失败。
- 正确写法必须带
,direct后缀:go env -w GOPROXY=https://goproxy.cn,direct - 公司内网代理需按优先级排序:
https://intra.example.com,goproxy.cn,direct - 离线或内网环境务必加
go env -w GOSUMDB=off,否则 checksum 校验会卡死
GOBIN 和 GOPATH 还用不用配
绝大多数项目完全不需要手动配置 GOBIN 或 GOBIN,GoLand 默认行为已足够安全:
-
GOBIN:默认走$GOPATH/bin,只要没在系统里硬设冲突的GOBIN,go install生成的命令就能被 GoLand 终端识别 -
GOROOT:必须配;GOBIN和GOROOT在 GoLand Settings → Go → Environment Variables 里留空即可 -
GOPATH:模块时代仅用于存放go install二进制和模块缓存,GoLand 自动读取go env GOPATH,无需在界面里重复设置
真正卡住人的地方,往往不是“没配”,而是“配了但路径多一斜杠、少一目录、或没重启 IDE”。验证是否成功,只看一件事:新建 main.go,写 fmt.Println("ok"),右上角绿色三角亮起且无波浪线。










