当前位置: 首页 > 科技观察

HarmonyOS搭建系统——GN官方FAQ翻译,以及GN官方文档分享

时间:2023-03-11 21:32:02 科技观察

更多内容请访问:与华为官方共建的鸿蒙技术社区https://harmonyos.51cto.com/#zzGNFAQ翻译(PS:它花了近半小时翻译了GN的官方FAQ,有错漏的请指正。)GN的文档在哪?GN内置了大量的帮助文档,可以运行gnhelp命令,但也可以在“参考页”中查阅完整的帮助文档(PS:附件文档包中的gn-reference.pdf).您也可以参考《快速入门指南》(PS:附件包中的gn-quick_start.pdf)和《语言及操作详解》(PS:附件包中的gn-language.pdf)。我可以生成XCode或VisualStudio项目吗?您可以通过一次构建为XCode、VisualStudio、QTCreator和Eclipse生成包含文件列表和目标的骨架(或包装器)项目(PS:gn是用于两阶段构建的工具),但使用Ninja执行实际构建(PS:第二个版本)。您不能像使用GYP云那样生成真正看起来像直接由这些工具创建的项目。有关详细信息,请运行gnhelpgen。一般如何生成构建变体?在GN中,参数在构建目录中,而不是在全局环境中。要编辑`out/Default`构建目录中的参数,请执行:gnargsout/Default(PS:此命令将打开一个编辑器(默认为vim),使用此命令查看它:gnargsout/Default--list)可以在这个文件中设置变量:默认是debugbuild,改为releasebuild,添加:is_debug=false默认是静态编译,改为component编译,添加:is_component_build=true默认是developerbuild,改为officalBuild,add:is_offical_build=true默认是chromiumbuild,改成Chromebuild,设置:is_chrome_build=true如何交叉编译?GN具有强大的交叉编译功能,并支持在一次构建中生成多个架构文件。具体请参考GN交叉编译文档(cross_compile.md)。我可以控制默认编译什么目标吗?是的!你可以在顶层目录的构建文件中创建一个名为“default”的组目标,例如“//:default”,GN会告诉ninja默认编译这个目标,而不是编译所有目标。GN上有公开演示吗?这是最近的一个,从2015年开始。从那以后没有太大变化,除了将gn变成一个单独的代码库,所以它仍然相关。----------------分向線----------------------以下是我补充的两个自问自答;-)为什么要翻译这个FAQ?学习知识讲究追根溯源。说到学习软件开发,往往是查阅官方文档和代码。鸿蒙使用gn(GenerateNinja)作为构建系统,gn是谷歌开发的,目前能找到的文档基本都是英文的。FAQ是几篇文档中比较短的一篇,也是初学者容易产生疑惑的地方。为什么要移动这些材料?gn项目官网:https://gn.googlesource.com/gn/由于在国内部分网络条件下无法访问googlesource.com,给广大开发者查阅gn官方文档带来了极大的不便。本贴附带的几个资料包是:1.gn源码包:gn.zip;2、gn文档包:gn-docs.zip;3、谷歌大佬们分享的关于GN的PPT:UsingGNbuild.pdf欢迎大家下载查看。了解更多请访问:与华为官方共建鸿蒙科技社区https://harmonyos.51cto.com/#zz