大型C++工程的构建技术:Modern CMake vs Bazel:https://zhuanlan.zhihu.com/p/112712537

手写Makefile:适合于小型项目编译。当项目中模块众多并且之间依赖关系复杂时,维护Makefile非常困难。