LOADING

加载过慢请开启缓存 浏览器默认开启

openharmony用ubuntu编写helloworld

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芯片举例其他芯片可能不适用)