OpenHarmony鸿蒙硬件Hi3861-构建系统-BUILD.gn(applications\sample\wifi-iot\app)文件结构解释 作者:马育民 • 2025-11-13 15:38 • 阅读:10007 # 说明 本文解释下面路径的 `BUILD.gn` 文件各部分 `\applications\sample\wifi-iot\app\BUILD.gn` 内容如下: ``` import("//build/lite/config/component/lite_component.gni") lite_component("app") { features = [ "code_v2.0/std_03:hello_demo", ] } ``` # 整体作用 这个`BUILD.gn`文件是OpenHarmony轻量系统(如Hi3861开发板)中用于 **管理应用组件集合** 的配置文件 **核心作用:**指定哪些功能模块需要被 **编译并集成到最终固件中** ### 1. `import("//build/lite/config/component/lite_component.gni")` **作用**:导入OpenHarmony轻量系统提供的“组件模板”(`lite_component.gni`)。 - 这个模板封装了轻量系统中“组件定义”的通用规则,允许开发者通过`lite_component`关键字快速定义一个可被系统识别的组件,无需手动编写复杂的构建逻辑。 - 路径`//`表示OpenHarmony源码的根目录,`build/lite/config/component/`是系统内置构建配置的固定路径。 ### 2. `lite_component("app") { ... }` - **`lite_component`**:这是从上面导入的模板中提供的关键字,用于定义一个“轻量系统组件”(适用于Hi3861等资源受限设备)。 [](https://www.malaoshi.top/upload/0/0/1GW2DgCAaVUV.png) - **`"app"`**:当前组件的名称(可自定义,通常表示“应用程序集合”),构建系统会通过这个名称识别该组件。 - 大括号`{ ... }`内是组件的具体配置,核心字段是`features`。 ### 3. `features = [ ... ]` - **作用**:指定当前组件(`"app"`)包含哪些“子功能模块”,这些模块会被构建系统编译并最终打包到固件中。 - 列表中的每一项是一个“模块路径”,格式为:`"相对路径或绝对路径:模块名"`,表示“引入指定路径下的某个模块”。 # 总结: 它是一个“组件清单”,通过`features`列表决定哪些应用模块(如MQTT demo、OLED demo等)会被包含在最终的固件中。开发者可以通过注释/取消注释列表中的项,快速切换需要编译的功能(无需修改模块源码,只需调整配置),这在多功能测试或版本裁剪时非常方便。 例如,当前配置仅启用了`code_v2.0/std_20mqqt`目录下的`ems`模块,其他模块(如LED、WiFi、OLED相关)均被注释,因此构建时只会编译`ems`模块对应的功能。 原文出处:http://malaoshi.top/show_1GW2DgFvvEje.html