当前位置: 首页 > news >正文

鸿蒙南向开发教程 Day 2:创建自己的 Hello World 工程

目标:学会自己命名模块,创建并编译第一个自定义 Hello World 工程
前置条件:已完成 Day 1 的环境搭建(DevEco Device Tool + 工具链 + 源码导入)


一、工程结构说明

src/applications/sample/wifi-iot/app/目录下创建自定义模块,这里以myhello为例:

app/ ├── BUILD.gn # 应用入口构建配置 └── myhello/ # 自定义模块目录(自己命名) ├── BUILD.gn # 模块构建配置 └── myhello.c # 主程序源码(自己命名)

二、文件详解

2.1 应用入口app/BUILD.gn

import("//build/lite/config/component/lite_component.gni") lite_component("app") { features = [ "myhello:example_myhello" # 引用 myhello 模块下的 example_myhello 目标 ] }
  • myhello:目录名(自己命名)
  • example_myhello:构建目标名(自己命名)

2.2 模块构建app/myhello/BUILD.gn

static_library("example_myhello") { # 构建目标名,与 BUILD.gn 中引用一致 sources = [ "myhello.c" # 源文件名(自己命名) ] include_dirs = [ "//utils/native/lite/include", # 系统头文件路径 ] }

2.3 主程序app/myhello/myhello.c

#include"ohos_init.h"// OpenHarmony 系统初始化头文件voidMyHelloMain(void)// 函数名自己命名{printf("My Hello World!\n");// 自定义输出内容}SYS_RUN(MyHelloMain);// 注册为系统启动入口,函数名需一致

三、命名规则总结

位置命名示例说明
目录名myhello模块文件夹,小写英文
构建目标example_myhelloBUILD.gnstatic_library()的名字
源文件名myhello.c与目录名保持一致,方便管理
函数名MyHelloMain驼峰命名,与模块名对应
SYS_RUN参数MyHelloMain必须与函数名完全一致

四、编译与验证

4.1 编译

  1. VSCode 底部工具栏点击Build
  2. 或快捷键Ctrl+Shift+B

编译成功后,镜像位于:

out/hispark_pegasus/wifiiot_hispark_pegasus/Hi3861_wifiiot_app_allinone.bin

4.2 烧录

  1. 连接开发板 USB
  2. 点击 IDE 的Upload按钮,等待弹出提示,按下开板RESET按键
  3. 等待烧录完成(约 30 秒)

4.3 查看输出

打开串口工具:

  • 端口:开发板对应的 COM 口
  • 波特率:115200

重启开发板,串口输出:

My Hello World!


五、常见问题

问题原因解决
编译报错target not foundBUILD.gn中目录名或目标名写错检查app/BUILD.gnfeatures路径是否与目录结构一致
编译报错undefined reference函数名与SYS_RUN不一致确认SYS_RUN(MyHelloMain)与函数定义一致
无串口输出波特率不对确认串口工具设置为115200

六、练习

尝试将myhello改为自己的名字,例如:

  • 目录:zhangsan
  • 目标:example_zhangsan
  • 函数:ZhangSanMain
  • 输出:"Hello from ZhangSan!"

七、下一步

Day 3 预告:学习鸿蒙内核,任务创建

http://www.jsqmd.com/news/937842/

相关文章:

  • G-Helper:拯救华硕笔记本性能的轻量级神器,3个核心功能让游戏本重获新生
  • 2026阁楼货架厂家优选指南:空间翻倍方案与实力派品牌排行 - 深度智识库
  • 如何用FunClip解决海量视频素材智能剪辑难题:开源AI工具实战指南
  • OptiScaler终极指南:免费实现游戏帧率提升30-60%的跨硬件超分辨率神器
  • 2026 年 6 月英语四六级模拟考试实测:高效突破备考瓶颈,精准提分指南 - 讲清楚了
  • 华硕笔记本终极轻量控制神器:5步告别Armoury Crate臃肿烦恼
  • DeepSeek总结的PostgreSQL 19 中的 SQL/PGQ:无需图数据库的图查询
  • PoeCharm完整中文版:5分钟掌握流放之路Build计算神器
  • 软件安全评审进阶:领域专长、渗透测试与场景模糊测试实践
  • C005延时模块:超低功耗硬件定时器在物联网节点中的应用
  • 2026 年 6 月英语四六级模拟考试实测:告别盲目刷题,精准提分指南 - 讲清楚了
  • 2026年大型仓储货架品牌排行榜:工业级选型攻略与实力厂家盘点 - 深度智识库
  • Boss Show Time:终极Chrome扩展指南,快速提升求职效率的免费神器
  • 2026最新!亲测3款免费AI视频总结神器,真香体验,10分钟搞定2小时长视频总结!
  • 如何高效诊断Claude-Mem故障:5个关键步骤的系统化指南
  • 构建隐私优先的遥测数据收集体系:从设计到实战
  • 基于W5100S与Node-RED的嵌入式物联网数据可视化实战
  • 河北EPDM塑胶跑道厂家实力盘点:5家合规服务商解析 - 奔跑123
  • 新手也能会:Windows Hermes 一键部署详细步骤(含安装包)
  • 如何快速导出微信聊天记录:WeChatMsg完全免费开源工具终极指南
  • 基于树莓派与ESP8266的智能花卉识别系统:边缘计算与物联网实践
  • 鸣潮自动化工具终极指南:5分钟快速上手指南
  • Highcharts v13 全新时间轴标签边界格式|让时间维度表达更智能
  • 淘宝任务自动化神器:taojinbi如何帮你每天节省30分钟
  • WinUtil终极指南:一键管理Windows系统的免费神器
  • 【智能体配置指南】飞书接入 OpenClaw 2.7.8 智能体配置指南(含安装包)
  • EhViewer开源漫画浏览应用完整指南:从入门到精通的实用教程
  • 如何在5分钟内掌握Mermaid在线图表编辑器:面向初学者的终极指南
  • 从一次授权测试复盘:我是如何利用参数污染和自动绑定漏洞拿到管理员权限的
  • 从Github到服务器:我如何优化starfm4py,让STARFM融合速度提升10倍以上