首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何使bazel目标依赖于另一个构建文件中的所有目标

在Bazel中,可以通过在BUILD文件中使用deps关键字来使目标依赖于另一个构建文件中的所有目标。以下是具体的步骤:

  1. 创建一个BUILD文件,用于定义你的目标和依赖关系。假设该文件名为BUILD1
  2. BUILD1文件中,定义你的目标,并使用deps关键字将其依赖于另一个构建文件中的所有目标。例如:
代码语言:txt
复制
cc_binary(
    name = "my_target",
    srcs = ["my_source.cc"],
    deps = ["//path/to/other:all"],
)

在上述示例中,my_target是你要构建的目标,my_source.cc是源代码文件,//path/to/other:all是另一个构建文件中的所有目标。

  1. 创建另一个构建文件,用于定义被依赖的目标。假设该文件名为BUILD2
  2. BUILD2文件中,定义被依赖的目标。例如:
代码语言:txt
复制
cc_library(
    name = "my_library",
    srcs = ["my_library.cc"],
)

在上述示例中,my_library是被依赖的目标,my_library.cc是源代码文件。

通过以上步骤,你可以使my_target依赖于my_library。当你构建my_target时,Bazel会自动构建my_library

对于腾讯云相关产品和产品介绍链接地址,由于不能提及具体品牌商,建议你访问腾讯云官方网站,查找与云计算相关的产品和文档,以获取更多信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

[Bazel]自定义工具链

本文会讲述 Bazel 自定义工具链的两种方式,Platform 和 Non-Platform 方式。会存在这两种方式的原因是 Bazel 的历史问题。例如,C++ 相关规则使用 --cpu 和 --crosstool_top 来设置一个构建目标 CPU 和 C++ 工具链,这样就可以实现选择不同的工具链构建 C++ 项目。但是这都不能正确地表达出“平台”特征。使用这种方式不可避免地导致出现了笨拙且不准确的构建 APIs。这其中导致了对 Java 工具链基本没有涉及,Java 工具链就发展了他们自己的独立接口 --java_toolchain。因此非平台方式(Non-Platform)的自定义工具链实现并没有统一的 APIs 来规范不同语言的跨平台构建。而 Bazel 的目标是在大型、混合语言、多平台项目中脱颖而出。这就要求对这些概念有更原则的支持,包括清晰的 APIs,这些 API 绑定而不是分散语言和项目。这就是新平台(platform)和工具链(toolchain) APIs 所实现的内容。

03

谷歌用机器人大规模删除代码:二十多年积累了数十亿行,已删除5%C++代码

编译 | 核子可乐、Tina 来自系统的自动消息:“你的代码死亡已超六个月,建议彻底删除哦。” 任何大型项目都一定会积累下“死代码”,也就是那些不再使用的模块,或者在早期开发期间存在但已经多年没跑过的程序。事实上,很多项目在创建完成后都会先运行一段时间,之后再也无人问津。 这些死代码会继续产生成本:自动化测试系统并不知道哪些代码无需再测,负责大规模清理的人们也会把很多不再运行的代码白白移来挪去。所以虽然这些代码的生产成本很高,但它同时也需要耗费大量时间加以维护。这类维护工作不能轻易跳过,否则未来就一定

01
领券