首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在巴泽尔,"@“这个符号是什么意思?

问在巴泽尔,"@“这个符号是什么意思?
EN

Stack Overflow用户
提问于 2018-10-14 10:49:26
回答 2查看 3.4K关注 0票数 8

我目前正在研究Bazel建筑系统。我总是在Bazel脚本中看到@符号,但是我找不到任何关于它的文档。我在巴泽尔的网站上搜索过,但结果似乎毫无用处。@ in Bazel。例如:

代码语言:javascript
复制
filegroup(
name = "toolchain_fg",
srcs = [
    ":cc-compiler-amd64",
    "@x86_64_unknown_linux_gnu_gcc_730//:compiler_components",
    ],
)

有人能为我解释一下这里的符号吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-14 12:42:21

这是为了引用远程存储库。

来自医生,取决于其他Bazel项目

local_repository( name = "coworkers_project",path =“/path/to/coworkers_project”) 如果您的同事有一个目标//foo:bar,则您的项目可以将其称为@coworkers_project//foo:bar。

还请参阅工作区规则中的远程存储库的设计文档和绑定示例。

票数 9
EN

Stack Overflow用户

发布于 2019-11-15 08:43:03

在Bazel中,目标由标签来表示。

Bazel标签的格式如下:

代码语言:javascript
复制
@repoName//packageName:target

例如,在myRepo中找到的以下包中

代码语言:javascript
复制
 myRepo
    ├── WORKSPACE
    ├── package1
    │  └── BUILD
    │  └── src
    └── package2
       ├── BUILD
       └── src

在myTarget中,package1/BUILD中的一个目标可以在全局上被标记为@myRepo//package1:myTarget。如果从相同的回购引用(例如来自package2/BUILD ),则可以省略@myRepo前缀,并且可以使用//package1:myTarget。如果从同一个包引用(例如在package1/BUILD的另一个目标中),则可以省略包名,并且可以使用:myTarget。如果冒号不与名称混淆,也可以省略冒号。这种简短的标签不应与名称混淆。标签以'//‘或':’开头。但名字从来不起作用。例如,第一个包的名称是package1,但它的标签是//package1。

参考资料:https://docs.bazel.build/versions/master/build-ref.html

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

https://stackoverflow.com/questions/52801868

复制
相关文章

相似问题

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