【发布时间】:2016-12-05 15:06:36
【问题描述】:
我通过将 go 1.7.4 解压到 ~/go 并相应地设置 GOROOT 来安装它。我还创建了 ~/work/src/github.com/user/hello 并相应地设置了 GOPATH。
在尝试来自 https://golang.org/doc/install#testing 的 hello world 示例时,我收到以下错误:
$ go install github.com/user/hello
../work/src/github.com/user/hello/hello.go:3:8: cannot find package "fmt" in any of:
/home/user/go/src/pkg/fmt (from $GOROOT)
/home/user/work/src/fmt (from $GOPATH)
package github.com/user/hello
imports runtime: cannot find package "runtime" in any of:
/home/user/go/src/pkg/runtime (from $GOROOT)
/home/user/work/src/runtime (from $GOPATH)
检查 ~/go,我发现 fmt 在 ~/go/src/fmt 而不是 ~/go/src/pkg/fmt
感觉好像我错过了一些重要的东西。感谢您的帮助。
【问题讨论】:
-
您之前是否从包管理器安装过 Go?
go version打印什么?旧版本的 Go 过去常常在src/pkg中查找 stdlib。 -
确实,我安装了一个我不知道的旧版本的 go。删除它,现在它可以工作了。谢谢!
-
另外:千万不要设置GOROOT,不需要用go工具编译Go程序。
-
@Volker 但是如果我在我的主目录中安装了 go,我必须设置 GOROOT,对吗?我尝试取消设置,但在这种情况下“安装”失败。
-
@user3207230:是的,将预编译的 go 版本放在非标准路径中是唯一应该设置 GOROOT 的情况。如果您尝试从其他位置运行 Go,请不要忘记您已设置它,因为这是初学者问题的常见原因,默认建议的原因是不设置 GOROOT。
标签: go