编译:版本";go1.9“;与go工具版本不匹配;go1.9.1“;

编译:版本";go1.9“;与go工具版本不匹配;go1.9.1“;,go,Go,当我试图运行一个示例helloworld代码时,我遇到了这个错误 compile: version "go1.9" does not match go tool version "go1.9.1" 我的电脑有go1.9.1。错误的含义是什么?我如何解决此问题?如果您使用OSX自制软件进行安装,您可能需要在.bashrc、.zshrc中设置$GOROOT,等等: export GOROOT=/usr/local/opt/go/libexec 今天早上,当我从1.9->1.9.1更新时,我也遇到

当我试图运行一个示例helloworld代码时,我遇到了这个错误

compile: version "go1.9" does not match go tool version "go1.9.1"

我的电脑有go1.9.1。错误的含义是什么?我如何解决此问题?

如果您使用OSX自制软件进行安装,您可能需要在
.bashrc
.zshrc
中设置
$GOROOT
,等等:

export GOROOT=/usr/local/opt/go/libexec
今天早上,当我从1.9->1.9.1更新时,我也遇到了同样的错误,不过根据几篇帖子,
$GOROOT
应该不需要设置,直到今天我才设置。这可能是个bug


编辑:不是错误,有关详细信息,请参阅。

当您忘记删除以前的golang安装时,会发生此错误。。。只需删除它的目录。。。所以请确定安装位置。。。关于linux问题

type go
典型的输出是

go is hashed (/usr/local/go/bin/go)
所以只需删除它的祖父母目录(不要只安装它的二进制文件)


现在只需安装go,您就可以了

如果您将mac与自制软件一起使用,只需运行:

brew清理


要清除所有旧版软件包,这修复了我的问题。

在mac OS中,如果下载并安装的go软件包没有brew,则运行brew update命令将导致出现此问题 要解决此问题,您可以执行以下操作: brew卸载--忽略依赖项
从brew卸载go将解决Windows的问题

删除环境变量中的GOROOT系统变量并重新启动电脑


这是
GOROOT
环境变量与
go
命令的默认路径不匹配。一个或另一个需要改变;需要更改的设置取决于计算机上的特定设置。您可以通过使用首选方法将Go更新到最新版本来确定这一点,运行
which Go
(在Linux/macOS/BSD上)或
where Go
(在Windows上),然后检查列出的哪些文件具有较新的时间戳

Linux/macOS/BSD
  • 要更改
    GOROOT
    以匹配
    go
    命令的默认路径,请运行
    键入go
    ,并去掉末尾的
    /bin/go
    部分,以生成包含go安装的目录路径。然后,将其添加到
    .bashrc
    或其他适当的init文件中,如下所示:
导出GOROOT=/path/to/go安装

  • 要更改
    go
    命令路径以匹配
    GOROOT
    ,请将其添加到init文件的底部:
export PATH=“${GOROOT}/bin:${PATH}”

窗户
  • 要更改
    GOROOT
    以匹配
    go
    命令的默认路径,请运行
    where go
    获取输出的第一行,并去掉末尾的
    \bin\go.exe
    部分。然后,转到“设置”中的“编辑系统环境变量”,单击“环境变量…”,找到“GOROOT”变量并进行编辑以读取先前创建的路径

  • 要更改
    go
    命令路径以匹配
    GOROOT
    ,请首先保存
    echo%GOROOT%\bin的输出。然后,转到“设置”中的“编辑系统环境变量”,单击“环境变量…”,然后找到
    在底部窗格中找到“路径”行,单击“新建”,放入先前创建的路径,最后单击“上移”,直到它位于顶部

全部的 您需要打开一个新的命令提示符来查看效果。

采用一种简单的方法(Linux),我的系统中安装了不同版本的Go

美元去哪儿

帮助我找到了可用的go runnable,删除了所有,安装了一个新的go runnable,并确保在$PATH文件夹中为这个新的go runnable创建一个链接,以确保下面提供了现在安装的正确版本

$go版本


如果使用VsCode,只需将其添加到setting.json中即可

"go.goroot": "/usr/local/Cellar/go/1.x.x/libexec",

您的Go安装有问题。要么在不应该的时候设置了GOROOT,要么调用了错误的
go
binary,或者
GOROOT
中的源代码与工具不匹配,需要重新编译。当您更新Go Memory delete/usr/local/Go Folder时,您应该发布
Go env
的结果。在我的情况下,IntelliJ IDEA/Golang IDE将
GOROOT
设置为自制安装的早期版本。macOS部分的第二个选项为我工作,谢谢你的解释。我在brew更新后遇到了这个问题。为了修复它,我使用命令安装了旧版本:
brew-linkgo@1.14
之后,a将
GOROOT
值更改为:
GOROOT=/usr/local/opt/go@1.14/libexec
就我而言,我买了一台新笔记本电脑。我将所有代码、bashrc和其他类似文件复制到我的新笔记本电脑上,这样我就可以利用相同的别名/变量等。我认为go安装是在新笔记本电脑上新完成的,因此这条路径不匹配。这个解决方案有帮助。
"go.goroot": "/usr/local/Cellar/go/1.x.x/libexec",