除了 $GOROOT 和 $GOPATH 包“roots”还有哪些来源?

当我尝试使用vet我的 Go 代码并且没有要在范围内导入的包时,我通常会收到如下消息:


foo.go:12:2: cannot find package "api/test/metadata/v1" in any of:

    /golang-root/src/api/test/metadata/v1 (from $GOROOT)

    /path/to/home/dir/foo/bar/baz/src/api/test/metadata/v1 (from $GOPATH)

    /path/to/home/dir/foo/bar/src/config/src/api/test/metadata/v1

    /path/to/home/dir/foo/bar/src/platform/quux/src/api/test/metadata/v1

我可能是错的,但看起来这是说后两行是从$GOPATH/以外的东西绘制的$GOROOT。不过,并没有说明它们来自哪里。那些来自哪里?


(我希望它看的地方是/path/to/home/dir/foo/bar/src/config/ go /api/test/metadata/v1,因为它是一个编译的协议缓冲区。但是回答这个是次要的试图了解发生了什么。)


慕容森
浏览 135回答 1
1回答

跃然一笑

这完全是来自 Go 的措辞不当的错误消息的问题。行(from $GOPATH)以后的所有条目都来自$GOPATH. 没有其他来源。(我已经在 golang 项目中提出了这个问题,并提交了一个 PR 以使其更有帮助。)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go