Ninja是类似make的编译工具,make工具比较复杂,Ninja相比make更关注编译速度,小巧高效,LLVM、CMake、chrome使用Ninja编译。
安装
- 下载官网二进制
https://github.com/ninja-build/ninja/releases
- 源码编译
生成ninja可执行文件
git clone git://github.com/ninja-build/ninja.git && cd ninja
./configure.py --bootstrap
使用
生成build.ninja
使用Ninja需要生成build.ninja文件
- CMake通过CMakeList.txt来生成这个配置文件:
mkdir build && cd build
cmake -GNinja ../
- ninja_syntax python 工具来生成配置文件。
- ninja build文件生成工具
- 手写.ninja 文件
build.ninja 内容语法
build.ninja类似Makefile,描述构建的规则和依赖关系。Ninja文件没有分支、循环的流程控制,比Makefile简单。
具体语法参考 ninja-build
使用build.ninja编译
执行ninja会找当前目录下的build.ninja来编译得到TARGET:
ninja TARGET
./TARGET
ninja all
参考:
https://github.com/ninja-build/ninja
https://blog.csdn.net/yujiawang/article/details/72627121
http://zhongpan.tech/2019/06/26/008-cmake-with-ninja/
编译工具: 如何评价 CMake? - 暴躁毒舌的回答 - 知乎
https://www.zhihu.com/question/276415476/answer/557715322
为什么c++编译需要很长时间: https://my.oschina.net/stackoom/blog/3158357
为什么 C++ 编译速度比 Java 慢得多? - RednaxelaFX的回答 - 知乎
https://www.zhihu.com/question/42964826/answer/95183155