【问题标题】:go: cannot find GOROOT directory: c:\gogo: 找不到 GOROOT 目录: c:\go
【发布时间】:2015-06-27 23:52:11
【问题描述】:

我将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

现在severaldifferentplaces强烈敦促我不要设置GOROOT,设置GOPATH应该是需要的一切。

我应该反对这个建议还是我遗漏了什么?

【问题讨论】:

    标签: go build


    【解决方案1】:
    Go Language推荐的答案

    来自 Dave Cheney 的 You don’t need to set GOROOT, really 文章:

    只有两种情况可能需要设置$GOROOT 环境。这些都在 golang.org 网站上的installation page 中进行了描述。为了完整起见,我将在这里回顾它们

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

    (如果您想了解导致混淆 GOROOT 的历史,这篇文章的其余部分是一个很好的阅读,总结是由于大部分来自前 Go1 的过时指令。)

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

    如果您不确定,让它“正确”的最简单方法是首先设置任何其他GOPATH。然后运行go env 看看它说了什么;如果这显示了GOROOTGOPATH 的合理条目,那么你就完成了;仅设置变量以在错误时覆盖它。

    【讨论】:

      【解决方案2】:

      Go lang 安装好后,GOROOT 就是安装的根目录。

      当我在 Windows C:\ 目录中分解 Go Lang 二进制文件时,我的 GOROOT 应该是 C:\go。 如果使用 Windows 安装程序安装,它可能是 C:\Program Files\go(或 C:\Program Files (x86)\go,对于 64 位软件包)

       GOROOT = C:\go
      

      【讨论】:

        【解决方案3】:

        我将 GOROOT 设置为指向该目录的内容:

        AUTHORS      PATENTS      api          favicon.ico  misc         src
        CONTRIBUTORS README       bin          include      pkg          test
        LICENSE      VERSION      doc          lib          robots.txt
        

        这是包含 src、bin、doc、lib 等的目录...

        【讨论】:

          【解决方案4】:

          可能是缓存问题。

          对我来说,我重新打开了 MinGW(我通过 pacman 在 msys2 中安装了 go),它工作正常。

          【讨论】:

            猜你喜欢
            • 2022-09-28
            • 2021-10-31
            • 1970-01-01
            • 2020-09-02
            • 1970-01-01
            • 2022-01-23
            • 1970-01-01
            • 2018-10-24
            • 1970-01-01
            相关资源
            最近更新 更多