这个报错:
lfstackPack redeclared in this block
通常与 Go 版本混乱 / 多个 Go 环境共存 / 旧版本残留 有关。
尤其是在从 Go1.19→Go1.21 或 Go1.20→Go1.22 迁移时,runtime/internal/atomic 中的结构发生变化,会引发这种错误。
✅ 解决方案:彻底清理旧版本 Go
① 查看当前 Go 路径
which go
go env
如果输出路径不一致,说明存在多版本冲突。
② 卸载所有旧版本 Go
Linux / Mac
sudo rm -rf /usr/local/go
sudo rm -rf /usr/local/bin/go
sudo rm -rf ~/go/pkg/mod/cache
sudo rm -rf /usr/bin/go
sudo rm -rf /snap/go*
Windows
卸载控制面板里的 Go
然后手动删除:
C:\Go
%USERPROFILE%\go
③ 下载并重新安装最新 Go 版本
官方下载(避免第三方混乱):
https://go.dev/dl/
安装完成后确认:
go version
④ 清理依赖缓存并重新构建
go clean -modcache
go mod tidy
go build ./...
✅ 如果你是从源码编译程序(如 Docker 构建)
确保使用正确 Go 版本镜像:
FROM golang:1.22
别用系统自带的老版本 Go!
✅ 如果仍报错
请运行:
go env | grep GOROOT
go env | grep GOPATH
发给我,我帮你判断是否还有残留路径冲突。
📌 结论
这不是代码问题,是环境冲突问题
清理旧版本 + 重新安装最新版本即可解决。
发表回复