Go在错误的目录中查找包

时间:2014-12-30 20:40:22

标签: go

我已经使用Windows msi在我的计算机上安装Go,但是当我尝试运行一个简单的Hello World时,就像这样:

go run hello.go

我收到以下错误:

  

hello.go:3:8:找不到包" fmt"在任何一个:           C:\ Go \ src \ pkg \ fmt(来自$ GOROOT)

GOROOT中确实找不到此包,因为它已安装在以下目录中:

C:\Go\src (missing the \pkg)

GOROOT设置为C:\Go(自动),C\Go\bin已添加到PATH

我的GOPATH已设置为我的工作区,但这似乎无法改变任何内容。

如何解决这个问题?我应该将所有包复制到C:\Go\src\pkg吗? 我做错了吗?

修改

根据@ Volker的要求,这里是go env的输出:

set GOARCH=amd64
set GOBIN=
set GOCHAR=6
set GOEXE=.exe
set GOHOSTARCH=amd64
set GOHOSTOS=windows
set GOOS=windows
set GOPATH=D:\aage\gocode
set GORACE=
set GOROOT=C:\Go
set GOTOOLDIR=C:\Go\pkg\tool\windows_amd64
set CC=gcc
set GOGCCFLAGS=-m64 -mthreads -fmessage-length=0
set CXX=g++
set CGO_ENABLED=1

1 个答案:

答案 0 :(得分:2)

检查%PATH%:我安装了多个版本,我看到了:

    {li} fmt %GOROOT%(1.3)\src\pkgC:\prgs\go\go1.3.2.windows-amd64\src\pkg\fmt\ {li} fmt %GOROOT%(1.4)\srcC:\prgs\go\go1.4.windows-amd64\src\fmt\

资料来源已经重组 请参阅“Go 1.4 src/pkg → src”。

这意味着如果您尝试使用go 1.3进行编译,而GOROOT指向Go1.4安装,则可能会看到该错误。

如果这不起作用,请卸载并使用go1.4.windows-amd64.zip存档:将其解压缩到任意位置,将GOROOT指向它,添加GOROOT/bin,一切都应该有效。