建站能赚钱吗,熊掌号插件wordpress,不是万维网的网站,东莞今天特大新闻以yxml库为例#xff0c;其移植过程如下文所示。
源码获取
从仓库获取yxml源码#xff0c;其目录结构如下表#xff1a;
表1 源码目录结构
名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件#xff0c;及测试脚本yxml/Makefile编译组织文件yxml/.gitat…以yxml库为例其移植过程如下文所示。
源码获取
从仓库获取yxml源码其目录结构如下表
表1 源码目录结构
名称描述yxml/bench/benchmark相关代码yxml/test/测试输入输出文件及测试脚本yxml/Makefile编译组织文件yxml/.gitattributes-yxml/.gitignore-yxml/COPYING-yxml/yxml.c-yxml/yxml.c.in-yxml/yxml-gen.pl-yxml/yxml.h-yxml/yxml.md-yxml/yxml-states-
设置交叉编译
设置Makefile的交叉编译工具链修改并编译该库生成OpenHarmony平台的可执行文件步骤如下 设置工具链 将下列clang工具链配置替换掉yxml库根目录的Makefile即表1中的文件中的原有配置。 clang工具链配置 #设置交叉编译工具链确保工具链所在路径已经添加到了PATH环境变量中
CC:clang
AR:llvm-ar
#cflags中必须要添加--target及--sysroot选项
CFLAGS:-Wall -Wextra -Wno-unused-parameter -O2 -g --targetarm-liteos -marcharmv7-a -mfloat-abisoftfp -mcpucortex-a7 -mfpuneon-vfpv4 --sysroot$(OHOS_SYSROOT_PATH) 原有配置 CC:gcc
AR:ar
CFLAGS:-Wall -Wextra -Wno-unused-parameter -O2 -g 执行编译 linux命令行中进入yxml的源文件目录即图1所示目录执行下列命令 make test OHOS_SYSROOT_PATH... 其中OHOS_SYSROOT_PATH需用绝对路径指定出sysroot所在目录以OpenHarmony为例即源码根目录下out/hispark_xxx/ipcamera_hispark_xxx/sysroot目录的绝对路径。上述目录会在全量编译后生成因此移植前先完成一次全量编译。 查看结果 步骤2操作完成后yxml下会生成out目录里面有静态库文件和测试用例 表2 yxml编译生成目录 名称描述OpenHarmony/third_party/yxml/yxml/out/lib/编译生成的静态库的存放目录OpenHarmony/third_party/yxml/yxml/out/test/编译生成的测试用例及其输入输出等文件的存放目录
测试
yxml库测试步骤与double-conversion库基本一致可参考CMake方式组织编译的库移植的测试过程以下内容介绍yxml库测试用例的使用方法
表3 生成的test目录结构示意
名称描述OpenHarmony/third_party/yxml/yxml/out/test/test.sh自动化测试脚本由于OpenHarmony不支持脚本运行因此无法使用可参考其内容手动测试OpenHarmony/third_party/yxml/yxml/out/test/test用于测试的可执行文件OpenHarmony/third_party/yxml/yxml/out/test/*.xml测试输入文件OpenHarmony/third_party/yxml/yxml/out/test/*.out期望的输出文件
test.sh内容如下所示
#!/bin/sh
for i in *.xml; dobbasename $i .xmlo${b}.outt${b}.test./test $i $tif [ -n diff -q $o $t ]; thenecho Test failed for $i:diff -u $o $texit 1fi
done
echo All tests completed successfully.
由于OpenHarmony的shell中暂不支持输入输出重定向和所以测试时需要将输入*.xml文件内容直接复制进shell后回车输出内容会直接展示在shell窗口。过程如下
下列操作假定已按照2.4节的步骤搭建OpenHarmony挂载并进入nfs目录 执行下列命令 ./test 复制*.xml内容到shell 以表3test目录下pi01.xml为例内容如下输入到shell并回车 ?SomePI abc?a/ 比较shell中输出的内容与表3test目录中对应的*.out文件是否一致 输出结果如下 pistart SomePI
picontent abc
piend
elemstart a
elemend
ok 经比较与表3test目录下pi01.out内容一致测试通过。
将该库编译添加到OpenHarmony工程中
yxml库添加的过程除了适配文件build.gn和config.gni有些许变化外其他和double-conversion库完全一致参考CMake方式组织编译的库移植的配置过程。要修改的适配文件及添加后的目录结构如下
yxml库新增的BUILD.gn实现如下
import(config.gni)
group(yxml) {if (ohos_build_thirdparty_migrated_from_fuchisa true) {deps [:make]}
}
if (ohos_build_thirdparty_migrated_from_fuchisa true) {action(make) {script //third_party/yxml/build_thirdparty.pyoutputs [$target_out_dir/log_yxml.txt]exec_path rebase_path(rebase_path(./yxml, root_build_dir))command make clean $MAKE_COMMANDargs [--path$exec_path,--command${command}]}
}
yxml库新增的config.gni配置如下
TEST_ENABLE YESif (TEST_ENABLE YES) {MAKE_COMMAND make test OHOS_SYSROOT_PATH${root_out_dir}sysroot/
} else {MAKE_COMMAND make OHOS_SYSROOT_PATH${root_out_dir}sysroot/
} 添加完成后目录结构示意 表4 添加到工程后的目录结构
名称描述OpenHarmony/third_party/yxml/BUILD.gn将三方库加入工程的gn适配文件OpenHarmony/third_party/yxml/build_thirdparty.pyGN调用shell命令脚本文件由上面GN文件将相关命令传入实现GN转MakefileOpenHarmony/third_party/yxml/config.gni三方库编译配置文件可修改该文件来配置用例是否参与构建等OpenHarmony/third_party/yxml/yxml/要移植的三方库目录
最后
有很多小伙伴不知道学习哪些鸿蒙开发技术不知道需要重点掌握哪些鸿蒙应用开发知识点而且学习时频繁踩坑最终浪费大量时间。所以有一份实用的鸿蒙HarmonyOS NEXT资料用来跟着学习是非常有必要的。
这份鸿蒙HarmonyOS NEXT资料包含了鸿蒙开发必掌握的核心知识要点内容包含了ArkTS、ArkUI开发组件、Stage模型、多端部署、分布式应用开发、音频、视频、WebGL、OpenHarmony多媒体技术、Napi组件、OpenHarmony内核、Harmony南向开发、鸿蒙项目实战等等鸿蒙HarmonyOS NEXT技术知识点。
希望这一份鸿蒙学习资料能够给大家带来帮助有需要的小伙伴自行领取限时开源先到先得~无套路领取
获取这份完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
鸿蒙HarmonyOS NEXT最新学习路线 HarmonOS基础技能 HarmonOS就业必备技能 HarmonOS多媒体技术 鸿蒙NaPi组件进阶 HarmonOS高级技能 初识HarmonOS内核 实战就业级设备开发 有了路线图怎么能没有学习资料呢小编也准备了一份联合鸿蒙官方发布笔记整理收纳的一套系统性的鸿蒙OpenHarmony 学习手册共计1236页与鸿蒙OpenHarmony 开发入门教学视频内容包含ArkTS、ArkUI、Web开发、应用模型、资源分类…等知识点。
获取以上完整版高清学习路线请点击→纯血版全套鸿蒙HarmonyOS学习资料
《鸿蒙 (OpenHarmony)开发入门教学视频》 《鸿蒙生态应用开发V2.0白皮书》 《鸿蒙 (OpenHarmony)开发基础到实战手册》
OpenHarmony北向、南向开发环境搭建 《鸿蒙开发基础》
ArkTS语言安装DevEco Studio运用你的第一个ArkTS应用ArkUI声明式UI开发.…… 《鸿蒙开发进阶》
Stage模型入门网络管理数据管理电话服务分布式应用开发通知与窗口管理多媒体技术安全技能任务管理WebGL国际化开发应用测试DFX面向未来设计鸿蒙系统移植和裁剪定制…… 《鸿蒙进阶实战》
ArkTS实践UIAbility应用网络案例…… 获取以上完整鸿蒙HarmonyOS学习资料请点击→纯血版全套鸿蒙HarmonyOS学习资料
总结
总的来说华为鸿蒙不再兼容安卓对中年程序员来说是一个挑战也是一个机会。只有积极应对变化不断学习和提升自己他们才能在这个变革的时代中立于不败之地。