Bazel 介绍
Google 自家的构建工具,相比 CMake 的优势,主要是多语言构建和相比 Make 语法有更好的可读性。最著名的使用 Bazel 的项目大概是 Tensorflow 吧。目前生态上还是不太好和 CMake 相提并论,毕竟下面的命令已经像魔法一样刻在 Unix 的世界里。
./configure
make
make install
安装 Bazel
Mac 用户当然是使用 brew 解决了:
brew install bazel
安装参考官网吧~
Hello Bazel
要使用 Bazel,首先在项目顶层目录创建一个名为 WORKSPACE
的文件。值得一提的是 Bazel 推崇的是 Monorepo ,建议的项目结构是把代码、测试代码放到一起。在 C/C++ 中,意味着更加推荐头文件、源码文件、测试文件都放到同一个目录下。如果按 include
、src
、lib
、test
拆分,在 Bazel 的设计下,反而会增加难度。
因此我们就创建一个 src
文件夹,并在该文件夹下建立 BUILD
文件。WORKSPACE
顾名思义是工作区,BUILD
就是具体的构建目标。
.
├── WORKSPACE
└── src
├── BUILD
在 src
下创建一个最简单的 C++ 文件:
#include <iostream>
using namespace std;
int main(int argc, char* argv[])
{
cout << "hello, bazel" << endl;
return