編寫“Hello World”程序
下方將通過修改源碼的方式展示如何編寫簡單程序,輸出“Hello world”。請在下載的源碼目錄中進行下述操作。
- 確定目錄結構。
開發者編寫業務時,務必先在./applications/sample/wifi-iot/app路徑下新建一個目錄(或一套目錄結構),用于存放業務源碼文件。
例如:在app下新增業務my_first_app,其中hello_world.c為業務代碼,BUILD.gn為編譯腳本,具體規劃目錄結構如下:. └── applications └── sample └── wifi-iot └── app └── my_first_app │── hello_world.c └── BUILD.gn
鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md
]
編寫業務代碼。
新建./applications/sample/wifi-iot/app/my_first_app下的hello_world.c文件,在hello_world.c中新建業務入口函數HelloWorld,并實現業務邏輯。并在代碼最下方,使用OpenHarmony啟動恢復模塊接口SYS_RUN()啟動業務。(SYS_RUN定義在ohos_init.h文件中)#include < stdio.h > #include "ohos_init.h" #include "ohos_types.h" void HelloWorld(void) { printf("[DEMO] Hello world.n"); } SYS_RUN(HelloWorld);
編寫用于將業務構建成靜態庫的BUILD.gn文件。
新建./applications/sample/wifi-iot/app/my_first_app下的BUILD.gn文件,并完成如下配置。
如步驟1所述,BUILD.gn文件由三部分內容(目標、源文件、頭文件路徑)構成,需由開發者完成填寫。static_library("myapp") { sources = [ "hello_world.c" ] include_dirs = [ "http://utils/native/lite/include" ] }
- static_library中指定業務模塊的編譯結果,為靜態庫文件libmyapp.a,開發者根據實際情況完成填寫。
- sources中指定靜態庫.a所依賴的.c文件及其路徑,若路徑中包含"http://"則表示絕對路徑(此處為代碼根路徑),若不包含"http://"則表示相對路徑。
- include_dirs中指定source所需要依賴的.h文件路徑。
添加新組件。
修改文件build/lite/components/communication.json,添加組件hello_world_app的配置,如下所示為communication.json文件片段,"##start##"和"##end##"之間為新增配置("##start##"和"##end##"僅用來標識位置,添加完配置后刪除這兩行):
{
"components": [
{
"component": "camera_sample_communication",
"description": "Communication related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/communication"
],
"targets": [
"http://applications/sample/camera/communication:sample"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_a" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##start##
{
"component": "hello_world_app",
"description": "hello world samples.",
"optional": "true",
"dirs": [
"applications/sample/wifi-iot/app/my_first_app"
],
"targets": [
"http://applications/sample/wifi-iot/app/my_first_app:myapp"
],
"rom": "",
"ram": "",
"output": [],
"adapted_kernel": [ "liteos_m" ],
"features": [],
"deps": {
"components": [],
"third_party": []
}
},
##end##
{
"component": "camera_sample_app",
"description": "Camera related samples.",
"optional": "true",
"dirs": [
"applications/sample/camera/launcher",
"applications/sample/camera/cameraApp",
"applications/sample/camera/setting",
"applications/sample/camera/gallery",
"applications/sample/camera/media"
],
`HarmonyOS與OpenHarmony鴻蒙文檔籽料:mau123789是v直接拿`
- 修改單板配置文件。
修改文件vendor/hisilicon/hispark_pegasus/config.json,新增hello_world_app組件的條目,如下所示代碼片段為applications子系統配置,"##start##"和"##end##"之間為新增條目("##start##"和"##end##"僅用來標識位置,添加完配置后刪除這兩行):{ "subsystem": "applications", "components": [ ##start## { "component": "hello_world_app", "features":[] }, ##end## { "component": "wifi_iot_sample_app", "features":[] } ] },
審核編輯 黃宇
-
源碼
+關注
關注
8文章
641瀏覽量
29213 -
開發板
+關注
關注
25文章
5050瀏覽量
97471 -
鴻蒙
+關注
關注
57文章
2352瀏覽量
42858 -
Hi3861
+關注
關注
1文章
59瀏覽量
6502 -
OpenHarmony
+關注
關注
25文章
3722瀏覽量
16317
發布評論請先 登錄
相關推薦
鴻蒙OpenHarmony【集成三方SDK】 (基于Hi3861開發板)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【集成三方SDK】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/CD/wKgZomYCdwyAIFf5AAB_7E1pFms943.jpg)
鴻蒙OpenHarmony【標準系統編寫“Hello World”程序】 (基于RK3568開發板)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【標準<b class='flag-5'>系統編寫</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于RK3568<b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/CD/wKgZomYCdwyAIFf5AAB_7E1pFms943.jpg)
如何使用 HiBurn 工具燒錄鴻蒙的 .bin 文件到 Hi3861 開發板
關于OpenHarmony輕量系統開發
潤開鴻Hi3861開發板介紹
![潤開鴻<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>介紹](https://file1.elecfans.com//web2/M00/82/55/wKgaomRJ5S2ATV_uAAug8w8E8MQ484.png)
鴻蒙OpenHarmony【輕量系統編寫“Hello World”程序】 (基于Hi3861開發板)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統編寫</b>“<b class='flag-5'>Hello</b> <b class='flag-5'>World</b>”<b class='flag-5'>程序</b>】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙OpenHarmony【輕量系統編譯】 (基于Hi3861開發板)
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>【<b class='flag-5'>輕</b><b class='flag-5'>量</b><b class='flag-5'>系統</b>編譯】 (基于<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>)](https://file1.elecfans.com/web2/M00/C5/D1/wKgZomYChGOAUaiiAADe1d8SeRY102.jpg)
鴻蒙OpenHarmony南向:【Hi3861開發板介紹】
![<b class='flag-5'>鴻蒙</b><b class='flag-5'>OpenHarmony</b>南向:【<b class='flag-5'>Hi3861</b><b class='flag-5'>開發板</b>介紹】](https://file1.elecfans.com/web2/M00/E1/98/wKgaomY4nymAGhj6AAiNkRdS0qQ673.jpg)
評論