go:找不到GOROOT目录:c:\ go

And*_*eKR 2 build go

将Go分发解压入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
Run Code Online (Sandbox Code Playgroud)

现在几个 不同的 地方强烈要求我不要设置GOROOT,设置GOPATH应该是所需要的一切.

我应该反对这个建议还是我缺少什么?

Dav*_*e C 5

来自戴夫切尼你不需要设置GOROOT,真的文章:

只有两种情况可能需要设置$GOROOT环境.这些都在golang.org网站的安装页面中描述.为了完整起见,我将在这里回顾一下

  • 您是使用golang.org网站上的zip或tarball二进制文件下载的Linux,FreeBSD或OS X用户.这些二进制文件具有$GOROOT值,/usr/local/go并建议您将它们解压缩到该位置.如果您选择不这样做,则必须设置$GOROOT为您选择的位置.
  • 您是使用golang.org网站上的zip二进制文件下载的Windows用户.这些二进制文件的$GOROOT值为C:\Go.如果您将Go放在系统上的其他位置,则必须设置$GOROOT为您选择的位置.

(如果你想了解导致混淆的历史,那么本文的其余部分是一个很好的阅读GOROOT,摘要是由于过时的指令主要来自Go1之前.)

因此,如果您使用预先构建的Go二进制文件,并且您希望将其放在"想要"之外的其他位置,那么您需要GOROOT.否则(即,如果您从源代码构建Go,或者如果您将二进制分发版放在默认位置),则不需要或不想设置GOROOT(上面的文章给出了一些原因).

如果你不确定,让它"正确"的最简单方法是首先不要设置其他任何东西GOPATH.然后跑去go env看看它说的话; 如果它显示合理的条目GOROOT,GOPATH然后你就完成了; 只设置变量以覆盖它,如果它是错误的.