我已经使用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
答案 0 :(得分:2)
检查%PATH%
:我安装了多个版本,我看到了:
fmt
%GOROOT%(1.3)\src\pkg
:C:\prgs\go\go1.3.2.windows-amd64\src\pkg\fmt\
{li} fmt
%GOROOT%(1.4)\src
:C:\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
,一切都应该有效。