Windows装Go必须选go1.25.x.windows-amd64.msi,安装路径禁用空格和中文(如C:\Go或D:\Go),需手动设置GOROOT系统变量并配置GOPROXY代理,否则go mod、go get会失败或卡死。

Windows 上装 Go,别信“一路下一步就完事”——默认路径和中文路径会直接导致 go mod 报错、go get 失败、IDE 识别不到 SDK。
安装包选错:windows-amd64 还是 windows-386?
绝大多数 Windows 电脑(2015 年后出厂)都是 64 位系统,必须选 go1.25.x.windows-amd64.msi。选错 windows-386 不仅编译出的二进制无法运行,后续所有依赖工具(如 gopls、dlv)都会提示 “exec format error”。Mac 和 Linux 同理:M1/M2 芯片选 darwin-arm64,Intel Mac 选 darwin-amd64,Linux x86_64 服务器选 linux-amd64.tar.gz。
安装路径含空格或中文:C:\Program Files\Go 就是定时炸弹
Windows 安装向导默认路径是 C:\Program Files\Go,但 Go 工具链(尤其是 go build 和模块解析)在遇到空格时会把路径截断,典型报错:cannot find module providing package fmt 或 exec: "gcc": executable file not found(即使已装 MinGW)。正确做法:
- 手动改路径为
D:\Go或C:\Go(无空格、无中文、无特殊符号) - Linux/macOS 解压到
/usr/local/go或~/go即可,但注意~在某些 shell 中可能未展开,建议写绝对路径
环境变量没生效:GOROOT 和 GOPATH 到底要不要设?
Go 1.16+ 默认启用 modules,GOPATH 已不是必须项,但 IDE(如 GoLand、VS Code)仍会读取它来定位本地包;GOROOT 则必须指向安装根目录(如 D:\Go),否则 go env -w 会写错位置。常见错误:
- 只配了
PATH里的%GOROOT%\bin,却没真正设置GOROOT系统变量 →go env GOROOT输出空或错误路径 - 用安装包安装后,
go env GOPATH显示C:\Users\XXX\go,但你实际代码放在D:\myproject→go mod init仍能工作,但go install生成的二进制会默认落到%GOPATH%\bin,容易找不到 - PowerShell 里用
$env:GOROOT="D:\Go"临时设置 → 重启终端就失效,必须写入系统环境变量或$PROFILE
代理不配:go get 直连 golang.org 就是卡死
国内访问 proxy.golang.org 和 sum.golang.org 极不稳定,go mod download 常卡在 “verifying” 阶段。必须设置代理:
- 命令行一次性设置:
go env -w GOPROXY=https://proxy.golang.com.cn,direct - 推荐长期生效:
go env -w GOPROXY=https://goproxy.cn,direct(cn 站响应更快,兼容性好) - 若公司内网禁外网,可加
GOINSECURE=your-private-repo.example.com绕过校验 - 注意:
direct不能省,否则私有模块拉不到
最易被忽略的一点:Go 安装后首次运行 go mod init 或 go run 时,会静默触发模块下载 —— 此时若没配代理,它不会报错,只会无限等待,光标停住不动,看起来像卡死。这时候 Ctrl+C 中断,再执行 go env -w GOPROXY=...,重试即可。
golang免费学习笔记(深入):立即使用
在学习笔记中,你将探索golang的核心概念和高级技巧!











