鸿蒙构建系统——gn官方FAQ翻译,以及gn官方文档分享

GN FAQ 翻译chrome

(PS:花了将近半个小时,把GN的官方FAQ翻译了一遍,有错漏之处欢迎你们指正。)vim

 

GN 的文档在哪里?网络

GN有大量的内置的帮助文档,因此你能够运行gn help命令查阅,可是你一样能够在“参考页面”(PS:附件文档包中的gn-reference.pdf)查阅所有帮助文档。你一样能够查阅“快速入门指南”(PS:附件文档包中的gn-quick_start.pdf)和“语言和操做细节”(PS:附件文档包中的gn-language.pdf)。架构

 

我能够生成XCode或者Visual Studio项目吗?编辑器

你能够用一次构建(PS: gn是两阶段构建的工具)为XCode,Visual Studio,QTCreator和Eclipse生成带有文件列表和目标的骨架(或包装)项目,可是使用 Ninja执行实际的构建(PS:第二次构建)。你不能像使用GYP cloud那样生成真的看起来和这些工具直接建立的同样的项目。工具

了解详细内容,请运行gn help gen。post

 

我如何生成通常的构建变种(build variants)?学习

在GN中,参数在构建目录中,而不是在全局环境中。要编辑你的`out/Default`构建目录下的参数,执行:ui

gn args out/Defaultgoogle

(PS: 这个命令会打开一个编辑器(默认是vim),查看的话用这个命令:gn args out/Default --list)

 

你能够在这个文件中设置变量:

  • 默认是debug构建,改成release构建,添加:is_debug = false
  • 默认是静态编译,改成组件编译,添加:is_component_build = true
  • 默认是developer构建,改成offical构建,添加:is_offical_build = true
  • 默认是chromium构建,改成Chrome构建,设置:is_chrome_build = true

 

我如何进行交叉编译?

GN有健壮的交叉编译和一次构建生成多个架构文件的支持。

详细信息,请查阅GN交叉编译文档(cross_compile.md)。

 

我能够控制默认编译什么目标吗?

能够!你能够在顶层目录的构建文件中建立一个叫作“default”的组目标,例如“//:default”,GN将会告诉ninja默认编译这个目标,而不是编译全部的目标。

 

有关于GN的公开演示讲解吗?

这里有一个最近的,2015年的。从那以后,除了将gn变为一个独立的代码仓以外,没有什么太大的变化,因此仍然是相关的。

 

-------------------------------- 分割线 --------------------------------

 

如下是我补充的两个自问自答  ;-)

 

为何翻译这个FAQ?

学习知识讲究追本溯源,具体到学习软件开发,每每就是查阅官方文档和代码。

 

鸿蒙使用gn(Generate Ninja)做为构建系统,而 gn 是由谷歌开发的,目前可以找到的文档基本上都是英文的。

FAQ是几个文档中间比较短小的一篇,同时也是初学者容易有疑问的地方。

 

为何搬运这些资料?

gn项目官网:https://gn.googlesource.com/gn/

因为国内部分网络条件下没法访问 googlesource.com ,这给广大开发者查阅gn官方文档带了很大的不便。

 

本帖附件的几个资料包分别是:

1. gn源码包:gn.zip ;

2. gn文档包:gn-docs.zip ;

3. 谷歌大佬关于GN分享的PPT:Using GN build.pdf

【获取原文资源包】

做者:许思惟

想了解更多内容,请访问: 51CTO和华为官方战略合做共建的鸿蒙技术社区https://harmonyos.51cto.com

相关文章
相关标签/搜索