首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >$GOPATH[i]和$GOPATH[d]是什么?

$GOPATH[i]和$GOPATH[d]是什么?
EN

Stack Overflow用户
提问于 2021-02-21 19:01:29
回答 1查看 76关注 0票数 1

Go模块参考的一节描述了一些最小模块兼容性的规则。在本节中有一个条件列表,其中两个如下所示:

  • 不存在$GOPATH[i]/src/$modpath/$vn/$suffix目录(对于任何根$GOPATH[i]),
  • 文件$GOPATH[d]/src/$modpath/go.mod存在(对于某些根$GOPATH[d]),并将模块路径声明为$modpath/$vn

在这种情况下,$GOPATH[i]$GOPATH[d]是什么?(假设我们知道$GOPATH是什么。)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-22 14:25:21

正如go命令的文档中所述:

GOPATH环境变量列出查找Go代码的位置。在Unix上,该值是一个冒号分隔的字符串.在Windows上,该值是分号分隔的字符串.在计划9中,值是一个列表。 如果未设置环境变量,则GOPATH默认为用户主目录中的一个名为" Go“的子目录($ home /go on Unix,%USERPROFILE%\go on Windows),除非该目录包含Go分发版。运行"go env GOPATH“以查看当前GOPATH。

(来源)

因此,您引用的语法$GOPATH[i]只是用来描述GOPATH中的一个项,正如我们所看到的,它可以是一个列表,而不仅仅是对单个路径的引用。

让我们假设我的Linux机器上有以下GOPATH/home/me/go:/gofaster,我正在用/home/me/go/src/example.com/testing进行一个项目。

最小模块兼容性规则可以这样说,即。要解决我的依赖关系example.com/utils/v2,Go将检查:

  • 我没有/home/me/go/src/example.com/testing/vendor/example.com/utils/v2的包裹。供应商目录)
  • 我没有/home/me/go/src/example.com/utils/v2的包裹,也没有/gofaster/src/example.com/utils/v2的包裹。检查两条腿)。
  • 我在/home/me/go/src/example.com/utils/gofaster/src/example.com/utils中有一个包(注意缺少v2)。

如果我在这些目录中都有一个包,那么它将用于解决依赖关系。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66305978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档