第 11 章:Bazel 构建系统 - 入门
学习目标
- 理解 Bazel 的优势
- 掌握 Bazel 基本概念
- 学会构建简单项目
11.1 什么是 Bazel
Bazel 是 Google 开源的构建工具,用于构建大型项目。
为什么选择 Bazel
- 快速:增量构建,只重新构建改变的部分
- 可扩展:支持大型项目
- 多语言:支持 C++、Java、Python 等
- 可复现:相同输入产生相同输出
11.2 安装 Bazel
Ubuntu
sudo apt install apt-transport-https curl gnupg
curl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor > bazel.gpg
sudo mv bazel.gpg /etc/apt/trusted.gpg.d/
echo "deb [arch=amd64] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list
sudo apt update && sudo apt install bazel
验证
bazel --version
11.3 核心概念
WORKSPACE
项目根目录的 WORKSPACE 文件标识这是一个 Bazel 项目。
BUILD
每个目录的 BUILD 文件定义构建规则。
Target
构建的目标,如可执行文件、库等。
11.4 第一个 Bazel 项目
项目结构
myproject/
├── WORKSPACE
├── BUILD
└── main.c
WORKSPACE
# 空文件即可
BUILD
cc_binary(
name = "hello",
srcs = ["main.c"],
)
main.c
#include <stdio.h>
int main() {
printf("Hello, Bazel!\n");
return 0;
}
构建和运行
bazel build //:hello
bazel run //:hello