Google 早期使用 GYP 来维护chromium项目的meta-build system,GN则是用来替代GYP的工具,目前chromium及相关的开源项目都迁移到基于GN来管理。并且GN是基于C++编写,效率上比基于python的GYP快了近20倍。今天小编给大家推荐一个视频,《Fuchsia : Working with GN build system》,先给大家做一点背景知识介绍:
构建系统简介
参考这篇文章,摘录部分如下:
构建系统的需求是随着软件规模的增大而提出的。如果只是做软件编程训练,通常代码量比较小,编写的源代码只有几个文件。当软件规模逐渐增加,这时可能有几十个源代码文件,而且有了模块划分,有的要编译成静态库,有的要编译成动态库,最后链接成可执行代码,这时命令行方式就捉襟见肘,需要一个构建系统。常见的构建系统有GNU Make。需要注意的是,构建系统并不是取代gcc这样的工具链,而是定义编译规则,最终还是会调用工具链编译代码。
当软件规模进一步扩大,特别是有多平台支持需求的时候,编写GNU Makefile将是一件繁琐和乏味的事情,而且极容易出错。这时就出现了生成Makefile的工具,比如cmake、AutoMake等等,这种构建系统称作元构建系统(meta build system)。而 GN 和前面提到的已经被 Google 放弃的 GYP 就是这样的元构建系统。
使用GN 构建系统
GN是一种元构建系统,生成Ninja构建文件(Ninja build files),相较GYP而言,具有大量优点,今天介绍的视频就是介绍使用 GN 构建系统的 Fuchsia 的。
原始视频地址:https://www.youtube.com/watch?v=QVZa7QbMix8,如果你可以访问 YouTube,欢迎点击原视频+点赞+关注,支持这名 YouTuber 小哥。
[…] 本文接着上一篇文章《Fuchsia :使用 GN 构建系统》,通过用一个简单的 Hello World App 来理解 GN 构建系统。小编从 YouTube 上看到这个视频,觉得非常不错,就转帖分享过来: […]