我目前正在研究Bazel建筑系统。我总是在Bazel脚本中看到@符号,但是我找不到任何关于它的文档。我在巴泽尔的网站上搜索过,但结果似乎毫无用处。@ in Bazel。例如:
filegroup(
name = "toolchain_fg",
srcs = [
":cc-compiler-amd64",
"@x86_64_unknown_linux_gnu_gcc_730//:compiler_components",
],
)有人能为我解释一下这里的符号吗?
发布于 2018-10-14 12:42:21
这是为了引用远程存储库。
来自医生,取决于其他Bazel项目
local_repository( name = "coworkers_project",path =“/path/to/coworkers_project”) 如果您的同事有一个目标
//foo:bar,则您的项目可以将其称为@coworkers_project//foo:bar。
还请参阅工作区规则中的远程存储库的设计文档和绑定示例。
发布于 2019-11-15 08:43:03
在Bazel中,目标由标签来表示。
Bazel标签的格式如下:
@repoName//packageName:target例如,在myRepo中找到的以下包中
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
https://stackoverflow.com/questions/52801868
复制相似问题