Openharmony上如何编译与运行HelloWorld
admin
2024-05-14 03:12:15
0

Openharmony的第一个应用--Hello world

大家都明白的Hello World的C++代码

// FirstApp.cpp
#include 
int main(int argc, char *argv[])
{std::cout << "Hello Openharmony!" << std::endl;return 0;
}

问题来了,接下来如何将FirstApp.cpp加入Openharmony进行编译,然后运行呢?此过程涉及Openharmony的子系统,编译构建子系统,关于编译构建的整体复杂的流程不表,按照能代码能跑的原则,如下流程一步一步操作运行起来后,后续会在章节中详细解释为何如此。

开发环境介绍

代码版本:Openharmon V3.1-Release

开发板:rk3568

1.首先将FirstApp.cpp文件放至Openharmon V3.1-Release的/base/account目录下。

2.创建/base/account/BUILD.gn文件,内容如下

# HelloOpenHarmony为可执行程序名称
# ohos_executable为Openharmony编译可执行程序的模板
ohos_executable("HelloOpenHarmony") {sources = ["FirstApp.cpp",]
}

3.修改/base/account/bundle.json如下

在sub_component中添加"//base/account/os_account:HelloOpenHarmony"

"sub_component": ["//base/account/os_account/services:services_target","//base/account/os_account/services/accountmgr/src/appaccount:app_account_service_core","//base/account/os_account/frameworks/appaccount/native:app_account_innerkits","//base/account/os_account/frameworks/osaccount/core:os_account_core","//base/account/os_account/frameworks/common:common_target","//base/account/os_account/frameworks/osaccount/native:os_account_innerkits","//base/account/os_account/interfaces/kits/napi/appaccount:appaccount","//base/account/os_account/interfaces/kits/napi/distributedaccount:distributedaccount","//base/account/os_account/interfaces/kits/napi/osaccount:osaccount","//base/account/os_account/sa_profile:account_sa_profile","//base/account/os_account/tools:os_account_tools","//base/account/os_account:HelloOpenHarmony"
],

4.编译

# 此为完整编译,也可以选择子组件进行单独编译,加上-T HelloOpenHarmony指定模块进行编译也可以生成HelloOpenHarmony的可执行程序
./build.sh --product-name rk3568
./build.sh --product-name rk3568 -T HelloOpenHarmony

5.运行

编译成功后,在/out/rk3568/common/common/目录下可以找到HelloOpenHarmony的可执行程序,此时将HelloOpenHarmony推送至开发板的/system/bin目录下,并通过chmod修改其可执行权限。结果如下:

# 通过hdc_std推送至开发板的过程较易,略过(如有疑问,欢迎留言)
# 只展示在hdc_std shell进入开发板之后的操作与结果
# chmod 777 /system/bin/HelloOpenHarmony
# ls -ali /system/bin/HelloOpenHarmony
2297 -rwxrwxrwx 1 root root 25300 2020-01-15 09:29 /system/bin/HelloOpenHarmony
# ./system/bin/HelloOpenHarmony
Hello Openharmony!

此时,运行在Openharmony上的第一个可执行程序就完成了。

Openharmony程序编译构建过程简单描述

1.关于bundle.json

一个或多个bundle.json组成Openharmony的某个子系统,此例中将HelloOpenHarmony做个一个组件添加至账号子系统(account)中参与编译。

2.关于BUILD.gn

BUILD.gn可以看做一个组件的makefile文件。

3.综合下来,HelloOpenHarmony编译构建过程,现在可以理解为首先当./build.sh --product-name rk3568命令执行时,会找到子系统的bundle.json,然后bundle.json根据sub_component的组件列表,找到组件的BUILD.gn,然后交叉编译工具对BUILD.gn定义的模板(ohos_executable)进行编译。

4.注意

  • 以上的编译构建过程是建立在Openharmony V3.1以前的版本之上,Openharmony V3.2之后的版本流程略有差别。

  • 以上只是一个简易的描述,详细的编译构建过程,如果想了解更多,会另外开辟章节进行描述。

后续更精彩

1.关于service ability的前世今生

2.Openharmony的分布式软总线

3.后续的文章难度会有所增加,欢迎大家留言反馈。

相关内容

热门资讯

和讯投顾王宇:还剩三天,题材能... 2月10日,和讯投顾王宇表示,当下市场题材分歧愈发明显,节前仅剩三个交易日,到底还能不能继续博弈?极...
美股三大指数集体高开 新闻荐读 美东时间周二,美股三大指数集体高开,截至北京时间23:00左右,道指涨逾360点,续创盘中...
华润置地,任命新的集团营销负责... 近日,市场消息,华润置地原杭州公司分管副总朱勇,被任命为集团运营管理部副总经理,分管整个开发销售型业...
原创 比... 当地时间2月9日,路透社的一则报道引发广泛关注:中国汽车制造商比亚迪已正式对美国政府提起诉讼,剑指美...
裕同科技拟4.49亿元收购华研... 苹果、泡泡玛特主要供应商裕同科技(002831)2月10日晚间公告,拟4.49亿元收购东莞市华研新材...
巨亏50亿!AI制药独角兽IP... 2月4日,AI+可编程药物公司Generate:Biomedicines向美国证券交易委员会(SEC...
多家知名品牌宣布:春节期间,涨... 过年脚步临近,春节假期是线上消费的高峰期,也是运力最为紧张的时期。顺丰、京东物流、圆通、申通、中通、...
担忧受AI冲击 美国微软公司股... (央视财经《天下财经》)据彭博社等媒体9日报道,当天,美国梅利乌斯研究公司将微软公司的股票评级从“买...
原创 2... 写在文章前的声明:在本文之前的说明:本文中所列的投资信息,只是一个对基金资产净值进行排行的客观描述,...
青藏高原发现天然氢:可以拉开能... 近日,中国科学家在青藏高原的岩石里,第一次实实在在地“看到”了天然氢气。 它不是通过计算或地表泄漏推...
上海小南国回应餐厅停止营运 北京商报讯(记者 郭缤璐)2月10日晚间,上海小南国控股有限公司发布公告,对于上海小南国品牌在上海经...
招金矿业致歉:向遇难者表示沉痛... 2月10日,招金矿业在港交所发布公告: 最近,招金矿业股份有限公司蚕庄金矿(“蚕庄金矿”)上庄矿段...
君乐宝上市布局细分赛道领跑增长... 2026年1月19日,中国领先的综合乳制品企业君乐宝乳业集团股份有限公司(简称“君乐宝”)正式向香港...
酒业渠道商再闯港股,名品世家董... 蓝鲸新闻2月10日讯(记者 朱欣悦)2月10日,港股GEM上市公司环球印馆控股有限公司(08448....
上市银行,迎密集调研! 2026年以来,上市银行迎来机构密集调研,其中沿海经济发达区域的中小银行是机构重点调研对象。 截至2...
豆包压哨参战,决战春节流量窗口... 本报(chinatimes.net.cn)记者卢晓 北京报道 春节AI红包大战继续升温。 2月10日...
小米汽车准备进入美国市场?雷军... 2月10日,针对小米YU7被拍到行驶在美国加州的高速公路上,挂着当地的测试车牌或进入美国市场的消息,...
春节后部分黄金产品将调价?周大... 2月10日,有消息称,黄金珠宝品牌周大福在春节后将对黄金产品调价,此次调价或于3月中旬启动,目前部分...
标普500指数高开9.67点,... 标普500指数高开9.67点,涨幅0.14%,报6974.49点; 道琼斯工业平均指数高开57.6...
中国银行调整春节期间代理个人上... 中国银行2月10日发布关于2026年春节期间代理个人上金所业务相关调整的公告称,2026年春节假期临...