OpenHarmony开发者论坛
标题:
菜鸟求助,这些BUILD.gn之间的关系是什么样子的?
[打印本页]
作者:
zhqi
时间:
2024-1-5 12:59
标题:
菜鸟求助,这些BUILD.gn之间的关系是什么样子的?
从官网看了一些代码,但是不太理解这么多BUILD.gn之间的关系,比如
applications\sample\wifi-iot\app\BUILD.gn
applications\sample\wifi-iot\app\startup\BUILD.gn
作者:
dragon
时间:
2024-1-5 18:36
标题:
菜鸟求助,这些BUILD.gn之间的关系是什么样子的?
BUILD.gn之间通常是以目录的层级结构进行组织的,也就是上层
BUILD.gn引用到下层
BUILD.gn,形成一种树形结构。
当然这里说的是通常,因为在OpenHarmony的编译架构中,有一些
BUILD.gn就会比较特殊,会从另一个位置直接引用其他位置的
BUILD.gn。
作者:
润开鸿_梁开祝
时间:
2024-1-10 22:11
建议你先去了解一下 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)的编译目标,也是同样的使用相对路径和绝对路径,都是可以的。
欢迎光临 OpenHarmony开发者论坛 (https://forums.openharmony.cn/)
Powered by Discuz! X3.5