Go 语言报错 StackGuardMultiplier redeclared in this block

前言

最近在 GitHub 刷到了  GitHub - golang-china/gopl-zh: Go语言圣经中文版, 然后又是周末,就起了玩心。搞一个 Go 玩玩,去 The Go Programming Language下载了 Go 语言安装包,一路默认安装。然后打开 VS Code 安装 Extension,扩展提示说需要安装好几个包(虽然现在也还没搞懂 Go 的包机制,感觉不想 pip 那么简单直接)提示报错如下。

The "dlv" command is not available. Run "go install -v github.com/go-delve/delve/cmd/dlv@latest" to install.

结果自动安装却得到下面的报错:

C:\Program Files\Go\src\runtime\internal\sys\consts.go:13:7 StackGuardMultiplier redeclared in this block
C:\Program Files\Go\src\runtime\internal\sys\consts.go:16:7 DefaultPhysPageSize redeclared in this block
C:\Program Files\Go\src\runtime\internal\sys\consts.go:20:7 PCQuantum redeclared in this block
C:\Program Files\Go\src\runtime\internal\sys\consts.go:23:7 Int64Align redeclared in this block
C:\Program Files\Go\src\runtime\internal\sys\consts.go:30:7 MinFrameSize redeclared in this block
C:\Program Files\Go\src\runtime\internal\sys\consts.go:34:7 StackAlign redeclared in this block

各种 redeclared 报错,我后来又尝试不用 VS Code 单纯用 Go 命令 run 一个程序,结果出现了同样的报错。似乎不是扩展安装的问题,而是程序的问题了。Redeclared 最直觉的想法就是可能文件重复了。

然后猛然想起来,这个 C 盘是我从旧 C 盘拷过来的,重装系统后又拷贝可能出现了奇怪的问题,Go 觉得没安装,但是又安装了。

解决方案

那解决方案很简单了,先再次打开安装包,卸载 Go(点击 Remove)。然后去报错中说的路径(我这里是 C:\Program Files\Go\) ,直接把 Go 这个目录全部删除。

然后再重新打开安装包重新安装即可。重新安装后验证安装。

创建脚本,代码如下(来源 Hello, World - Go语言圣经

package main

import "fmt"

func main() {
    fmt.Println("Hello, 世界")
}

问题解决!(经典 solution:遇到问题先重装再重启hhh)

猜你喜欢

转载自blog.csdn.net/Haulyn5/article/details/127963494