大家好,今天我们来谈一谈编程时一个很有趣的话题——编译顺序。
首先呢,得看看这个vendor/xradio/xr806/config.json,这可是个关键角色。它就像是一个交通警察,告诉编译器:“嘿,你得先编译这个,然后再编译那个。”其中的product_name就是交通警察手中的指挥棒,它决定了执行hb set时会出现的选项。
而device_company、board、kernel_type这三位则是一同决定了代码的行走路径。
当你用hb set选定了wifi_skylark后,就会在根目录中生成一个叫做ohos_config.json的文件。这个文件就像是一张地图,上面清楚地标明了各个代码文件应该放置的位置。这样,编译器就知道去哪里找这些代码了。
然后,当你执行hb build -f命令时,harmonyos的编译脚本就会从device_path中获取编译工具和编译选项,从product_path下寻找build.gn文件。这个过程就像是在准备一场演出,编译工具是音响设备,编译选项是音量调节器,而build.gn文件则是节目单。
build.gn文件中的内容可是相当精彩的。其中build_ext_component(libsdk)就像是一个大明星,有很多依赖项需要先行准备。这些依赖项就像是它的伴舞团队和乐队,得提前到位才能确保演出的顺利进行。
同样的道理也适用于group(xr806)和ohosdemo/build.gn中的内容。这些文件和文件夹都需要按照一定的顺序进行编译,才能确保整个程序的顺利运行。
最后呢,当你打开hello_demo/build.gn时,你会看到import(//device/xradio/xr806/liteos_m/config.gni)这句话。这就像是在演出开始前,主持人走上台说:“感谢大家的支持,现在我们开始演出!”然后,static_library(app_hello)就像是第一个节目,闪亮登场!
你想想看,一群代码如果不按照顺序来,岂不是乱成一锅粥了?好在harmony给我们提供了明确的编译顺序,让代码们可以乖乖排队,一个个等待被编译。
所以说啊,编译顺序可是个大学问。只有掌握了正确的顺序,才能让代码们和谐共处,共同演绎出一场精彩的程序运行秀!
以xr806_openharmony为例,当你通过hb set选定wifi_skylark后,会在根目录中生成一个叫ohos_config.json的文件。这个文件里主要包括以下内容:
{ root_path: /home/workspace/harmony_xr806, board: xr806, kernel: liteos_m, product: wifi_skylark, product_path: /home/workspace/harmony_xr806/vendor/xradio/xr806, device_path: /home/workspace/harmony_xr806/device/xradio/xr806/liteos_m}然后,当你执行hb build -f时,harmonyos的编译脚本就会从device_path中获取编译工具和编译选项,然后从product_path下寻找build.gn文件。
现在让我们看看这个build.gn文件的内容:
build_ext_component(libsdk) { exec_path = rebase_path(., root_build_dir) outdir = rebase_path($root_out_dir) command = ./build.sh ${outdir} deps = [ //kernel/liteos_m:kernel, #(3) os:liteos_glue, adapter/hals:adapter, adapter/console:app_console, ohosdemo:ohosdemo, #(2) ]}group(xr806) { deps = [ :libsdk #(1) ]}这里有三个需要注意的地方:
1.deps关键字代表执行group(xr806)前需要先执行libsdk,也就是build_ext_component(libsdk)。
2.在执行build_ext_component(libsdk)前,需要先找到ohosdemo文件夹下的build.gn,并且这个文件里会有ohosdemo的定义。
3.//代表绝对路径,可以理解为根目录。比如//kernel/liteos_m代表根目录下的kernel/liteos_m文件夹。
最后,关于演示部分:
xr806_openharmony串口默认配置为:波特率115200,无校验,8位数据位,1位停止位。开发板成功连接pc上对串口调试助手后按下开发板的复位按键串口输出。这段文字描述了如何配置串口以及如何通过串口输出信息。
当你连接开发板到pc并使用串口调试助手进行调试时,你可以通过发送复位信号来启动应用程序,然后你将看到“hello world!”消息输出到串口上。
小米或成明年智能手机市场最大赢家?
详细了解工业自动化十八般兵器(下)
实测分享,瑞芯微RK3588八核国产处理器性能测评!确实“遥遥领先”
高压直流输电电压等级_高压直流输电的分类
白光干涉仪的测量操作方法
【XR806开发板试用】+4.OpenHarmony编译顺序
华为Mate10什么时候上市?最新消息:华为Mate10曝光高颜值、高配置,技压iPhone8!
大联大品佳集团推出基于Infineon电机控制器解决方案
基于三维仿真虚拟机器人解决与实施方案
世强携新产线强力出击,亮相2014年北京安博会
Spotify发明AI方法,可用于测试音乐是否剽窃
单片机开发公司的发展趋势
华为p10已经来了,但华为p11得等一年了,毕竟华为p系列的华为是精益求精
视觉环球:数字化智慧展厅设计,赋能企业数字化转型升级!
微动开关选择
曲面电视能减少视觉疲劳这是真的吗?
吉利爆仓 高位接盘戴姆勒
二维微机电阵列为移动光谱分析仪打下基础
RT-Thread软件包定义和使用
大屏为王时代,激光电视的优势