OpenHarmony全版本编译及用例测试 原创

树不子R
发布于 2023-12-6 14:46
浏览
0收藏

环境准备:
rk3568开发板
Windows10系统
参考资料:
https://blog.csdn.net/nanzhanfei/article/details/121951919
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Readme-CN.md#/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/quickstart-pkg-install-package.md

版本编译

注意事项

版本编译基本是按照“参考资料”中的流程,基本所有编译失败的问题都是由于依赖库安装不全导致,本节主要讲解依赖库安装需要注意的事项:
1.虚拟机安装Ubuntu18.04或者Ubuntu20.04,不要安装Ubuntu22.04
OpenHarmony全版本编译及用例测试-鸿蒙开发者社区
2.使用aptitude代替apt-get
sudo apt-get install aptitude
sudo aptitude install xxx
3.独立安装每个依赖库(一共93个)

踩坑指南

遇到的编译报错基本都是ninja phase failed,但根因都不一样,比如以下几个有记录的报错:

Ubuntu22.04系统

1.缺少ruby
OpenHarmony全版本编译及用例测试-鸿蒙开发者社区
2.缺少default-jdk
OpenHarmony全版本编译及用例测试-鸿蒙开发者社区
3.缺少gcc-multilib
OpenHarmony全版本编译及用例测试-鸿蒙开发者社区
在安装gcc-multilib时发现需要降级libc6,但是还有很多其他依赖当前libc6版本的库导致libc6无法降级,尝试失败。
除了以上几个案例,还遇到过比较典型依赖库安装失败是在安装一个库时需要先安装或更换版本其他N个库,这N个库又会引起另外N*M的问题,陷入了套娃模式,因此只能放弃。最后经过尝试发现Ubuntu22.04上除python版本外还有以下几个库没法安装:
sudo aptitude install gcc-multilib
sudo aptitude install g+±multilib
sudo aptitude install libc6-dev-i386
sudo aptitude install lib32ncurses5-dev
sudo aptitude install lib32z1-dev
sudo aptitude install gnutls-bin
sudo aptitude install lib32z-dev
sudo aptitude install libglib2.0-dev
当然这些库在官方文档中也说了只适用于ubuntu18.04版本,ubuntu22.04上肯定也有其他代替方案,如果有人找到的话欢迎解答。

Ubuntu20.04系统

ubuntu20.04系统上在安装依赖库时只遇到了一个困惑的地方:gcc-multilib和gcc-arm-linux-gnueabi存在冲突,查了下gcc-multilib有交叉编译的功能,最后除了gcc-arm-linux-gnueabi没安装外,其他92个均安装成功,用./build.sh --product-name rk3568 --ccache命令也编译成功。

用例测试

我这边的测试依赖test_developertest测试框架和xdevice工具,在实际测试过程中遇到过required device does not exist的问题,解决办法是:
1.下载testfwk_developer,test_developertest比较老项目已经关闭了
https://gitee.com/openharmony/testfwk_developer_test?_from=gitee_search
2.下载最新的xdevice:
https://gitee.com/openharmony/testfwk_xdevice

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
已于2023-12-6 16:12:01修改
收藏
回复
举报
回复
    相关推荐