GN快速上手

这篇具有很好参考价值的文章主要介绍了GN快速上手。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

最近在研究鸿蒙操作系统的开源项目OpenHarmony,该项目使用了GN+Ninja工具链进行配置,编译,于是开始研究GN如何使用。
本文的所有信息均来自GN官网和本人个人体会。

GN快速入门

使用GN

GN的主要功能是根据配置文件(.gn, BUILD.gn等)生成build.ninja文件。build.ninja类似于Makefile,不同的是由Ninja负责执行编译过程。
获取GN可执行程序。
1)源码编译。可以到官网下载源码。也可以到我的GN源码(需要5积分)
2)鸿蒙源码提供的GN可执行程序。Ubuntu下路径为[源码路径]/prebuilts/build-tools/linux-x86/bin/
将可执行程序放入PATH路径下,或将可执行程序的路径放入PATH,便可在命令行中直接使用GN。

建立构建环境

使用官网示例代码examples/simple_build,可以到官网下载,或到simple_build下载。
进入simple_build代码目录下,将…/out/build作为构建目录。

simple_build$ tree
.
├── build
│   ├── BUILDCONFIG.gn
│   ├── BUILD.gn
│   └── toolchain
│       └── BUILD.gn
├── BUILD.gn
├── hello.cc
├── hello_shared.cc
├── hello_shared.h
├── hello_static.cc
├── hello_static.h
├── README.md
└── tutorial
    ├── README.md
    └── tutorial.cc
simple_build$ gn gen ../out/build
Done. Made 3 targets from 4 files in 31ms
simple_build$ tree ../out/build
../out/build
├── args.gn
├── build.ninja
├── build.ninja.d
├── obj
│   ├── hello.ninja
│   ├── hello_shared.ninja
│   └── hello_static.ninja
└── toolchain.ninja

显示构建参数文章来源地址https://www.toymoban.com/news/detail-643890.html

simple_build$ gn args --list ../out/build
current_cpu
    Current value (from the default) = ""
      (Internally set; try `gn help current_cpu`.)
current_os
    Current value (from the default) = ""
      (Internally set

到了这里,关于GN快速上手的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用gn+Ninja构建项目

    先下载了gn的源码[gn.googlesource.com/gn],然后编译报错,就直接下载了了编译号的gn和Ninja,然后写了Helloworld应用的BUILD.gn,然后将\\\"gnexamplessimple_buildbuild\\\"拷贝至当前目录,结果Ninja编译报错,看起来是g++没有找到,奇怪明明已经下载的是 ninja-win 到\\\"D:Program Files\\\"。 直接CMD然后编

    2024年02月10日
    浏览(38)
  • OpenHarmony下gn相关使用

    为了提高OpenHarmony下移植vivante gpu的成功率,先得把准备工作做足了,这样后续就好搞了。所以本文档的核心工作介绍GN构建工具在OpenHarmony中的常见使用方法,指导三方库由cmake或者其它的脚本构建到GN构建的转换! 名称 描述 current_cpu 当前工具链的处理器架构 current_os 当前工

    2024年02月21日
    浏览(37)
  • OpenHarmony下GN语法普法

    前面一直在折腾怎么移植,怎么编写,尼玛忘了搞最基本的GN语法了。这不必须给安排上! GN 是简单的动态类型的命令式语言,其最终目的只是产生声明性的 Ninja 规则。一切都围绕作用域决定,它既是该语言的词法绑定(lexical binding,即静态绑定)结构,也是数据类型。 G

    2024年02月21日
    浏览(40)
  • OpenHarmonyOS-gn与Ninja

    GN语法及在鸿蒙的使用 [gn+ninja学习 0x01]gn和ninja是什么 ohos_sdk/doc/subsys-build-gn-coding-style-and-best-practice.md GN 语言与操作 gn是generate ninja的缩写,它是一个元编译系统(meta-build system),是ninja的前端,gn和ninja结合起来,完成OpenHarmony操作系统的编译任务。 元构建系统是一个生成其他

    2024年01月20日
    浏览(56)
  • BN,LN,IN,GN的理解和用法

    绿色区域表示将该区域作用域(四种方法都贯穿了w,h维度) ,即将该区域数值进行归一化,变为均值为0,标准差为1。BN的作用区域时N,W,H,表示一个batch数据的每一个通道均值为0,标准差为1;LN则是让每个数据的所有channel的均值为0,标准差为1。IN表示对每个数据的每个通道的均

    2024年02月05日
    浏览(46)
  • OpenHarmony网络协议通信—libevent [GN编译] - 事件通知库

    libevent主要是用C语言实现了事件通知的功能 直接在OpenHarmony-SIG仓中搜索libevent并下载。 使用说明 以OpenHarmony 3.1 Beta的rk3568版本为例 库代码存放路径:./third_party/libevent 修改添加依赖的编译脚本 在/developtools/bytrace_standard/ohos.build文件中添加修改 “//third_party/libevent:libevent_targe

    2024年04月29日
    浏览(39)
  • [GN] 使用vue3+vite+ts+prettier+eslint

    做到代码格式等统一,此时,esint和prettier就要登场了。 eslint是代码检测工具,可以检测出你代码中潜在的问题,比如使用了某个变量却忘记了定义。 prettier是代码格式化工具,作为代码格式化工具,能够统一你或者你的团队的代码风格。 = 安装prettier+eslint包,并做一系列的

    2024年01月16日
    浏览(59)
  • [GN] 后端接口已经写好 初次布局前端需要的操作(例)

    提示:前端项目一定要先引入组件 配置。再编码!!!! 使用·安装脚手架工具: 创建项目: 脚手架已经帮我们配置了代码美化、自动校验、格式化插件等,无需再自行配置 但是需要在 webstorm 里开启代码美化插件: setting 中 搜索Prettier 启用 prettier 组件库:https://arco.desi

    2024年01月20日
    浏览(35)
  • 一、计算机视觉-快速搭建开发环境

    搭建环境Anaconda 是必不可少的,用Anaconda 我们可以很容易的部署计算机视觉开发环境(包括用到的包、和IDE等) 下面我们看下Anaconda 是什么,为什么要用Anaconda Anaconda 是一个流行的开源发行版和包管理器,主要用于数据科学、机器学习和科学计算的 Python 和 R 环境。它提供了

    2024年02月22日
    浏览(49)
  • 计算机基础--计算机存储单位

    计算机中表示文件大小、数据载体的存储容量或进程的数据消耗的信息单位。在计算机内部,信息都是釆用二进制的形式进行存储、运算、处理和传输的。信息存储单位有位、字节和字等几种。各种存储设备存储容量单位有KB、MB、GB和TB等几种。 位(bit):二进制数中的一个

    2024年02月03日
    浏览(83)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包