专栏名称: 51CTO技术栈
有趣 | 有料 | 有内涵,为您提供最优质的内容,愿我们一起悦享技术,成就人生。
目录
相关文章推荐
51好读  ›  专栏  ›  51CTO技术栈

扒一扒鸿蒙中的Gn与Ninja

51CTO技术栈  · 公众号  · 程序员  · 2021-01-27 18:05

正文

送福利啦

关注 鸿蒙技术社区 ,回复 【鸿蒙】 送价值 399元 的鸿蒙 开发板套件 (数量有限,先到先得),还可以 免费下载 鸿蒙 入门资料


👇 扫码 立刻关注 👇

专注开源技术,共建鸿蒙生态


鸿蒙系统的编译构建是基于 Gn 和 Ninja 完成的,那么 Gn 和 Ninjia 有什么关系呢?具体又是如何工作的呢?


想必大多数热衷于应用开发的同学都还没有深究过,那么今天就借此机会带着大家扒一扒 Gn 和 Ninja。


我们先来说说 Ninja 吧!


Ninja 是借由 Google Chrome 项目而诞生的一个构建工具,它的诞生目标是为了速度。


换句话说,在 Google Chrome 项目的开发过程中,开发者们认为同类型的其它构建工具不给力,所以才会考虑重新开发更高效的工具。


要说同类型,那么不得不提构建界的老大哥 make !make 即 GNU Make,一个用于决定如何使用命令完成最终目标构建的程序。


在这里强调 make 的 3 个特性:

  • make 只是一个通用程序,它不知道如何具体的完成目标的构建工作。

  • make 需要 makefile 中的描述来决定目标构建的具体方案。

  • make 需要借助其它工具(如:gcc)才能执行方案,最终完成工作。
这是不是跑题了!不是说好的讨论 Ninja 吗?怎么扯到 make 上去了?!

因为 Ninja 可以看作是一个更好的 make !而大多数同学都熟悉 make ,所以通过对比 make 学习 Ninja 是一个非常好的选择!






请到「今天看啥」查看全文