C++ 和 Bazel
使用集合让一切井井有条
根据您的偏好保存内容并对其进行分类。
<ph type="x-smartling-placeholder">
</ph>
报告问题open_in_new
查看来源open_in_new
敬上
每晚
·
7.3。
·
7.2 条
·
7.1。
·
7.0。
·
6.5
本页包含可帮助您将 Bazel 与 C++ 项目结合使用的资源。它与
教程、构建规则以及专门用于构建 C++ 组件的其他信息,
项目和项目。
使用 Bazel
以下资源有助于您在 C++ 项目上使用 Bazel:
最佳做法
除了常规 Bazel 最佳做法之外,下面还介绍了
C++ 项目特有的最佳实践。
BUILD 文件
创建 BUILD 文件时,请遵循以下准则:
每个 BUILD
文件都应包含一个 cc_library
目录中每个编译单元的规则目标。
您应该对 C++ 库进行精细化处理,就像
以最大限度地提高增量和并行构建。
如果 srcs
中只有一个源文件,请将库命名为
该 C++文件的名称此库应包含 C++ 文件、任何匹配的
头文件)以及库的直接依赖项。例如:
cc_library(
name = "mylib",
srcs = ["mylib.cc"],
hdrs = ["mylib.h"],
deps = [":lower-level-lib"]
)
对文件中的每个 cc_library
目标使用一个 cc_test
规则目标。为
目标 [library-name]_test
和源文件 [library-name]_test.cc
。
例如,上述 mylib
库目标的测试目标将
如下所示:
cc_test(
name = "mylib_test",
srcs = ["mylib_test.cc"],
deps = [":mylib"]
)
包含路径
对于包含路径,请遵循以下准则:
创建相对于工作区目录的所有包含路径。
对非系统标头使用带引号的 include (#include "foo/bar/baz.h"
),
尖括号 (#include <foo/bar/baz.h>
)。
避免使用 UNIX 目录快捷方式,如 .
(当前目录)或 ..
(父级目录)。
对于要求包含外部的旧版代码或 third_party
代码,
项目代码库(例如外部代码库包含,且包含需要前缀)、
请使用 include_prefix
和
strip_include_prefix
cc_library
规则目标的参数。
如未另行说明,那么本页面中的内容已根据知识共享署名 4.0 许可获得了许可,并且代码示例已根据 Apache 2.0 许可获得了许可。有关详情,请参阅 Google 开发者网站政策。Java 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC):2024-08-22。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"没有我需要的信息"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"太复杂/步骤太多"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"内容需要更新"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻译问题"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"示例/代码问题"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"其他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"易于理解"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"解决了我的问题"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"其他"
}]
{
"lastModified": "最后更新时间 (UTC):2024-08-22。",
"confidential": False
}