首先确认一点,bazel多语言的构建工具,区别于其他构建工具(在构建领域有java构建工具maven、C语言构建Makefile等),bazel有其强大的优势。
- 构建快。支持增量编译。对依赖关系进行了优化,从而支持并发执行。
- 可构建多种语言。bazel可用来构建Java C++ Android ios等很多语言和框架,并支持mac windows linux等不同平台
- 可伸缩。可处理任意大小的代码库,可处理多个库,也可以处理单个库
- 可扩展。使用bazel扩展语言可支持新语言和新平台。
安装bazel
可以在window上尝试使用bazel进行构建官方例子(GitHub - bazelbuild/examples: Examples for Bazel), 但是不建议这么做,这样会浪费你的时间去做一些不必要的事情,本文是通过使用Ubuntu系统去对bazel进行简单的剖析。
安装依赖
zip、unzip、gcc、g++
sudo apt install -y zip unzip
sudo apt install -y gcc g++
下载bazel安装脚本
Release 5.1.1 · bazelbuild/bazel · GitHub
很奇怪shell文件为什么有46.4MB,其实是bazel的压缩包追加到shell文件后面。
当然可以通过unzip对shell文件进行解压
unzip bazel-5.1.1-installer-linux-x86_64.sh -d ./test/
安装bazel
一路pass,畅通无助
sudo ./bazel-5.1.1-installer-linux-x86_64.sh --user
配置环境变量
vim ~/.bashrc
# 追加代码
export PATH=~/bin:$PATH
source ~/.bashrc
验证是否安装成功
bazel --version,回显 bazel 5.1.1成功
验证例子
下载bazel examples
git clone https://github.com/bazelbuild/examples.git
cd examples/cpp-tutorial/stage1/
编译例子
bazel build //main:hello-world