Android编译系统——Ninja编译介绍(十六)

        Ninja 是一个轻量级、高性能的构建系统,专注于极速增量编译,广泛用于 Chromium、Android(Soong)、CMake(生成后端)等项目中。它的核心设计理念是简单和速度,通过最小化构建逻辑和并行化任务来实现高效编译。

一、Ninja基础介绍

1、Make与ninja对比

        在传统的 C/C++ 项目中,通常采用 make 系统使用 Makefile 来进行整个项目的编译构建,Makefile 指定的编译依赖规则会使编译流程简单,但是 make 的依赖大而且复杂,在大型项目编译时,使用的模块越来越多,Makefile 组织的项目编译时间越来越长,这个对于编译效率来说是一个极大的浪费。

  Ninja 是由 Google 员工 Evan Martin 开发的小型构建系统。Ninja 注重速度,它在两个主要方面与其他构建系统有所不同:Ninja 被设计为使其输入文件由更高级别的构建系统生成,并且其被设计为尽可能快地运行构建。

  本质上,Ninja 旨在替换 Make,这在执行增量(或无操作)构建时很慢。这可能会大大降低开发人员在大型项目上的工作速度,例如 Google Chrome 将 40,000 个输入文件编译为单个可执行文件。实际上,谷歌浏览器是忍者的主要用户和动机。它也用于构建 Android,并且被大多数从事 LLVM 的开发人员所使用。

  与 Make 相比,Ninja 缺少诸如字符串操作之类的功能,因为 Ninja 生成文件不是要手工编写的。相反,应使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

c小旭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值