openharmony用ubuntu编写helloworld
上一期环境安装
openharmony用ubuntu源码下载 openharmony用ubuntu图形化页面快速部署第一部分:介绍目录结构
(看不懂的请直接拉到下面实践部分跟着复刻,这里是理论讲解)
软件部分目录结构
app
├─ BUILD.gn
└─ 目标文件夹1
├─ BUILD.gn
└─ xxxx.c
└─ 目标文件夹2
├─ BUILD.gn
└─ xxxx.c
.....
首先打开
//鸿蒙根目录/applications/sample/wifi-iot/app/
找到
BUILD.gn的文件
(不要问我为什么拿window系统演示实际操作要在ubuntu里面)
我们打开文件
只有红框里面是函数,其他的#号开头的都是注释
文件有两个部分组成
其中features 的部分可以用 “:” 来增加要参与编译的文件夹
介绍完之后打开目标文件夹介绍目标文件夹下的BUILD.gn文件
只有红框里面是函数,其他的#号开头的都是注释
该函数文件由三部分内容构成,目标、源文件、头文件路径。
目标:当前BUILD.gn文件所在的文件夹
源文件:写C或者CPP代码文件
头文件:C或CPP调用的库文件
第二部分:实践
了解之后
我们在//鸿蒙根目录/applications/sample/wifi-iot/app/
目录下面创建 hello的文件夹
在hello的文件夹下面创建
hello.c
BUILD.gn
这两个文件
然后先打开hello.c文件里面编写
#include <stdio.h>
#include "ohos_init.h"
void Hello_World(void)
{
printf("this is a test demo \r\n Hello World!\r\n");
}
SYS_RUN(Hello_World);
也可以使用APP_FEATURE_INIT来实现,
APP_FEATURE_INIT是OpenHarmony启动恢复模块接口,该接口用来启动业务。
效果是一样的。(APP_FEATURE_INIT和SYS_RUN定义都在ohos_init.h)文件中。
然后保存文件
再编写BUILD.gn文件
static_library("hello") {
sources = [
"hello.c"]
include_dirs = [
"//utils/native/lite/include"]
}
然后回到//鸿蒙根目录/applications/sample/wifi-iot/app/
修改app目录下面的BUILD.gn文件
在features处把startup改成hello
然后保存
import("//build/lite/config/component/lite_component.gni")
lite_component("app") {
features = [
"hello",
]
}
备注头文件位置:
//鸿蒙根目录/utils/native/lite/include
到此编译成功
编译输出的文件位置
//鸿蒙根目录/out/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin
(只是拿hi3861芯片举例其他芯片可能不适用)