我将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应该是所需的一切。
我是否应该反对这项建议,或者我有什么遗漏?
答案 0 :(得分:5)
来自Dave Cheney的You don’t need to set GOROOT, really文章:
只有两种情况可能需要设置
application_controller.rb concerns
环境。这些都在golang.org网站上的installation page中描述。为了完整起见,我将在这里回顾一下
- 您是使用golang.org网站上的zip或tarball二进制文件下载的Linux,FreeBSD或OS X用户。这些二进制文件的
$GOROOT
值为$GOROOT
,建议您将其解压缩到该位置。如果您选择不这样做,则必须将/usr/local/go
设置为您选择的位置。- 您是使用golang.org网站上的zip二进制文件下载的Windows用户。这些二进制文件的
$GOROOT
值为$GOROOT
。 如果您将Go放在系统上的其他位置,则必须将C:\Go
设置为您选择的位置。
(如果您想了解导致$GOROOT
混淆的历史,那么本文的其余部分是一个很好的阅读,摘要是由于过时的指令主要来自Go1之前。)
因此,如果您使用预先构建的Go二进制文件和,您希望将其放在“想要”之外的其他位置,那么您需要GOROOT
。否则(即,如果您从源代码构建Go,或者如果您将二进制分发版放在默认位置),则不需要或不想设置GOROOT
(上面的文章给出了一些原因,不这样做)。
如果您不确定,最简单的方法就是首先不设置其他GOROOT
。然后运行GOPATH
并查看它的内容;如果它显示go env
和GOROOT
的合理条目,那么您就完成了;只设置变量以覆盖它,如果它是错误的。
答案 1 :(得分:0)
一旦安装了Go lang,GOROOT就是安装的根目录。
当我在Windows C:\目录中分解Go Lang二进制文件时,我的GOROOT应该是C:\ go。 如果与Windows安装程序一起安装,则可能是C:\ Program Files \ go(对于64位软件包,可能是C:\ Program Files(x86)\ go)
GOROOT = C:\go
答案 2 :(得分:-1)
我将GOROOT设置为指向该目录的内容:
AUTHORS PATENTS api favicon.ico misc src
CONTRIBUTORS README bin include pkg test
LICENSE VERSION doc lib robots.txt
那个包含src,bin,doc,lib等的目录......
答案 3 :(得分:-1)
可能是缓存问题。
对我来说,我重新打开了MinGW(我安装了pacys的msys2),它有效。