go: 找不到 GOROOT 目录:c:\go
go: cannot find GOROOT directory: c:\go
我将 the Go distribution 解压缩到 d:\dev\go
,将 d:\dev\go\bin
添加到我的路径,创建了一个文件 d:\projects\hello\hello.go
并将 GOPATH 设置为 d:\projects\hello
。 运行 go build hello.go
告诉我:
go: cannot find GOROOT directory: c:\go
现在several different places强烈建议不要设置GOROOT,设置GOPATH应该就可以了
我应该反对这个建议还是我遗漏了什么?
我将 GOROOT 设置为指向该目录的内容:
AUTHORS PATENTS api favicon.ico misc src
CONTRIBUTORS README bin include pkg test
LICENSE VERSION doc lib robots.txt
这是包含 src、bin、doc、lib 等的目录...
摘自 Dave Cheney 的 You don’t need to set GOROOT, really 文章:
There are only two cases that where you may have to set a $GOROOT
environment. These are both described in the installation page on the golang.org website. For completeness I will recap them here
- You are a Linux, FreeBSD or OS X user using the the zip or tarball binary downloads from the golang.org website. These binaries have a
$GOROOT
value of /usr/local/go
and recommend you unpack them into that location. If you choose not to do this, then you must set $GOROOT
to the location you chose.
- You are a Windows user using the zip binary download from the golang.org website. These binaries have a
$GOROOT
value of C:\Go
. If you place Go somewhere else on your system then you must set $GOROOT
to the location you chose.
(如果您想了解对 GOROOT
造成混淆的历史,本文的其余部分是一个很好的阅读,总结是由于过时的指令主要来自 pre-Go1。)
因此,如果您使用预构建的 Go 二进制文件, 和 您想要将它放在它“想要”的地方以外的地方,那么您需要 GOROOT
。否则(即,如果您从源代码构建 Go,或者如果您将二进制分发版放在默认位置)您不需要或不想设置 GOROOT
(上面的文章给出了一些不这样做的原因)。
如果您不确定,使其“正确”的最简单方法是首先不设置任何其他GOPATH
。然后 运行 go env
看看它说的是什么;如果显示 GOROOT
和 GOPATH
的条目合理,那么您就完成了;仅设置变量以在错误时覆盖它。
可能是缓存问题。
对我来说,我重新打开了 MinGW(我通过 pacman 在 msys2 中安装了 go),它成功了。
安装好Go lang后,GOROOT就是安装的根目录。
我在WindowsC:\目录下对Go Lang二进制文件进行爆破,我的GOROOT应该是C:\go。
如果使用 Windows 安装程序安装,它可能是 C:\Program Files\go(或 C:\Program Files (x86)\go,对于 64 位软件包)
GOROOT = C:\go
我将 the Go distribution 解压缩到 d:\dev\go
,将 d:\dev\go\bin
添加到我的路径,创建了一个文件 d:\projects\hello\hello.go
并将 GOPATH 设置为 d:\projects\hello
。 运行 go build hello.go
告诉我:
go: cannot find GOROOT directory: c:\go
现在several different places强烈建议不要设置GOROOT,设置GOPATH应该就可以了
我应该反对这个建议还是我遗漏了什么?
我将 GOROOT 设置为指向该目录的内容:
AUTHORS PATENTS api favicon.ico misc src
CONTRIBUTORS README bin include pkg test
LICENSE VERSION doc lib robots.txt
这是包含 src、bin、doc、lib 等的目录...
摘自 Dave Cheney 的 You don’t need to set GOROOT, really 文章:
There are only two cases that where you may have to set a
$GOROOT
environment. These are both described in the installation page on the golang.org website. For completeness I will recap them here
- You are a Linux, FreeBSD or OS X user using the the zip or tarball binary downloads from the golang.org website. These binaries have a
$GOROOT
value of/usr/local/go
and recommend you unpack them into that location. If you choose not to do this, then you must set$GOROOT
to the location you chose.- You are a Windows user using the zip binary download from the golang.org website. These binaries have a
$GOROOT
value ofC:\Go
. If you place Go somewhere else on your system then you must set$GOROOT
to the location you chose.
(如果您想了解对 GOROOT
造成混淆的历史,本文的其余部分是一个很好的阅读,总结是由于过时的指令主要来自 pre-Go1。)
因此,如果您使用预构建的 Go 二进制文件, 和 您想要将它放在它“想要”的地方以外的地方,那么您需要 GOROOT
。否则(即,如果您从源代码构建 Go,或者如果您将二进制分发版放在默认位置)您不需要或不想设置 GOROOT
(上面的文章给出了一些不这样做的原因)。
如果您不确定,使其“正确”的最简单方法是首先不设置任何其他GOPATH
。然后 运行 go env
看看它说的是什么;如果显示 GOROOT
和 GOPATH
的条目合理,那么您就完成了;仅设置变量以在错误时覆盖它。
可能是缓存问题。
对我来说,我重新打开了 MinGW(我通过 pacman 在 msys2 中安装了 go),它成功了。
安装好Go lang后,GOROOT就是安装的根目录。
我在WindowsC:\目录下对Go Lang二进制文件进行爆破,我的GOROOT应该是C:\go。 如果使用 Windows 安装程序安装,它可能是 C:\Program Files\go(或 C:\Program Files (x86)\go,对于 64 位软件包)
GOROOT = C:\go