• Lv0
    粉丝0

积分14 / 贡献0

提问5答案被采纳0文章0

菜鸟求助,这些BUILD.gn之间的关系是什么样子的?

zhqi 显示全部楼层 发表于 2024-1-5 12:59:57
从官网看了一些代码,但是不太理解这么多BUILD.gn之间的关系,比如
applications\sample\wifi-iot\app\BUILD.gn

applications\sample\wifi-iot\app\startup\BUILD.gn


您尚未登录,无法参与评论,登录后可以:
参与开源共建问题交流
认同或收藏高质量问答
获取积分成为开源共建先驱

精彩评论2

dragon

沙发 发表于 2024-1-5 18:36:06

菜鸟求助,这些BUILD.gn之间的关系是什么样子的?

BUILD.gn之间通常是以目录的层级结构进行组织的,也就是上层BUILD.gn引用到下层BUILD.gn,形成一种树形结构。
当然这里说的是通常,因为在OpenHarmony的编译架构中,有一些BUILD.gn就会比较特殊,会从另一个位置直接引用其他位置的BUILD.gn。

润开鸿_梁开祝

板凳 发表于 2024-1-10 22:11:48
建议你先去了解一下 Gn 和 Ninja 这个构建系统的一些基础概念,也可以去:
https://ost.51cto.com/posts/4070
https://gitee.com/liangkzgitee/GnProjs
跑一下 build+ninja 的HelloWorld程序,做一下验证。

回到你提到的例子:
applications\sample\wifi-iot\app\BUILD.gn                 【1】
applications\sample\wifi-iot\app\startup\BUILD.gn    【2】

在文件【1】中,依赖/引用 到文件【2】的编译目标时,文件【1】内可以使用‘相对路径’或者‘绝对路径’两种方式描述它对【2】的使用。这里需要你了解这两个路径概念,以及代码根目录“//”概念和其他相关的概念。

使用相对路径,是相对于文件【1】的当前路径,如:“startup:xxx”或“./startup:xxx”, 这里的 “xxx”就是 startup/BUILD.gn 文件里描述的编译目标;

使用绝对路径,则是相对于代码跟目录“//”的路径,如“//applications/sample/wifi-iot/app/startup:xxx”, 这里的 “xxx”就是 startup\BUILD.gn 文件里描述的编译目标;

如果你想在 //applications/sample/wifi-iot/app/BUILD.gn 中依赖/引用 很远的地方(比如 //vendor/hihope/aaaa/bbbb/BUILD.gn)的编译目标,也是同样的使用相对路径和绝对路径,都是可以的。

Copyright   ©2023  OpenHarmony开发者论坛  京ICP备2020036654号-3 |技术支持 Discuz!

返回顶部