編寫“Hello World”程序
下方將通過修改源碼的方式展示如何編寫簡單程序,輸出“Hello world”。請在下載的源碼目錄中進行下述操作。
前提條件
已參考鴻蒙開發指導文檔:[gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md]
操作步驟

確定目錄結構。
開發者編寫業務代碼時,務必先在./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編寫業務代碼。
新建./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/applications.json,添加組件hello_world_app的配置,如下所示為applications.json文件片段,"##start##"和"##end##"之間為新增配置("##start##"和"##end##"僅用來標識位置,添加完配置后刪除這兩行):
說明: 本章節操作是以OpenHarmony-v3.1-Release版本為例進行操作的,該版本中,組件配置文件為build/lite/components/applications.json;若源碼版本大于等于OpenHarmony 3.2 Beta2時,組件配置文件為build/lite/components/communication.json。{ "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" ],修改單板配置文件。
修改文件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":[] } ] },
審核編輯 黃宇
-
開發板
+關注
關注
26文章
6161瀏覽量
114158 -
鴻蒙
+關注
關注
60文章
2874瀏覽量
45444 -
Hi3861
+關注
關注
1文章
64瀏覽量
7532 -
OpenHarmony
+關注
關注
31文章
3932瀏覽量
20794
發布評論請先 登錄
觸覺智能Purple Pi OH開發板率先適配OpenHarmony6.0 Release,鴻蒙明星開發板
觸覺智能RK3576開發板OpenHarmony開源鴻蒙系統USB控制傳輸功能示例
【項目實戰】基于Hi3861的鴻蒙智能小車(循跡、超聲波避障、遠程控制、語音控制、4G定位)有教程代碼
觸覺智能RK3506開發板通過OpenHarmony 5.1 XTS認證,引領鴻蒙開發新標桿!
開鴻開發板深度體驗:從開源鴻蒙開發到AI場景實踐
【潤開鴻HH-SCDAYU800A開發板試用體驗】Hello World
貝啟BQ3568HM 開發板被選用為 OpenHarmony 明星開發板
潤和的Hi3861開發版如何連接華為云
鴻蒙北向開發OpenHarmony5.0 DevEco Studio開發工具安裝與配置
【北京迅為】iTOP-RK3568開發板鴻蒙OpenHarmony系統南向驅動開發實操-HDF驅動配置UART
【北京迅為】itop-3568 開發板openharmony鴻蒙燒寫及測試-第2章OpenHarmony v3.2-Beta4版本測試
【北京迅為】itop-3568 開發板openharmony鴻蒙燒寫及測試-第1章 體驗OpenHarmony—燒寫鏡像
OpenHarmony源碼編譯后燒錄鏡像教程,RK3566鴻蒙開發板演示
OpenHarmony怎么修改DPI密度值?觸覺智能RK3566鴻蒙開發板演示

鴻蒙OpenHarmony【輕量系統編寫“Hello World”程序】 (基于Hi3861開發板)
評論