前言
硬件平台基于HiHope_DAYU200开发板,参考HiHope_DAYU200/开发环境搭建编译指南.md · HiHope IOT物联网设备/Docs - Gitee.comhttps://gitee.com/hihope_iot/docs/blob/master/HiHope_DAYU200/%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%90%AD%E5%BB%BA%E7%BC%96%E8%AF%91%E6%8C%87%E5%8D%97.md
一、开发环境搭建
1、 选择开发方式,linux虚拟机或者实体linux机,主要考虑:
1)OpenHarmony南向开发工具DevEco的要求windows内存8G,linux16G,并且要求ubuntu为20.04以上;
2)OpenHarmony源码80G,磁盘空间提前备好,否则搭建过程中出现问题很麻烦;
3)性能尽力的好,编译的快;
二、编译环境搭建
搭建过程全程使用普通用户,root用户会出现一些奇奇怪怪的问题;
(如未特殊说明,是ubuntu18.04还是ununtu20.04的就是都适用)
先sudo dpkg-reconfigure dash, 选择 否,更换为bash;
1. 安装环境包
sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.8 python3-pip ruby libtinfo-dev libtinfo5
20.04相较18.04作了很多升级,有些环境本身就有,由于我是先在18上编译成功的,20直接拿来用了就;
2.注册gitee,绑定邮箱,之后会用,方法在gitee官网根据提示走就行;
3.生成gitee密钥
在终端输入ssh-keygen -t ed25519 -C "XXXXXXXX@XX.com",后面是你绑定gitee的邮箱;
按提示按3次回车即可;
4.查看密钥
cat ~/.ssh/id_ed25519.pub,将生成的密钥添加到gitee;
5.验证
ssh -T git@gitee.com
如果出现You've successfully authenticated,即成功;
6.安装git客户端和git-lfs并配置用户信息:
git config --global user.name "用户名";
git config --global user.email "邮箱";
git config --global credential.helper store;
7.安装码云repo工具,可以执行如下命令:
unbuntu18.04:
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 >/usr/local/bin/repo;
chmod a+x /usr/local/bin/repo //0777也行
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests;
ubuntu20.04:
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo;
cd git-repo
cp repo ~/bin/
chmod a+x ~/bin/repo
curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo;
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests;
8.获取源码 *** 作步骤:
方法一:通过repo + ssh 下载(需注册公钥,请参考码云帮助中心);
repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
输入此命令后报错:/usr/bin/env: "python": 没有那个文件或目录
查看/usr/bin/pyth*,发现有许多python的文件和其连接,但是就是没有python的,百度后
执行cd /usr/bin/,然后ln -s /usr/bin/python3.8 python,即可;
repo sync -c //20G空间不够,70G也不够,建议最少100G;
repo forall -c 'git lfs pull';
方法二:通过repo + https 下载;
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c //20G空间不够
repo forall -c 'git lfs pull'
9.执行prebuilts:
在源码根目录下执行脚本,安装编译器及二进制工具;
bash build/prebuilts_download.sh;
下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下;
三、编译调试
在Linux环境进行如下 *** 作:
1.进入源码根目录,执行如下命令进行版本编译;
./build.sh --product-name rk3568 --ccache;
2.编译过程中报错解决
1)报错:ModuleNotFoundError: No module named 'dataclasses'
apt install python-pip; pip install dataclasses; 没解决;
查看鸿蒙社区,搜索dataclasses,python3 -m pip install dataclasses,解决;
2)[OHOS ERROR] ninja: error: '../../prebuilts/build-tools/common/ts2abc/node_modules', needed by 'clang_x64/obj/ark/ts2abc/ts2panda/node_modules', missing and no known rule to make it
同时删除掉下面两个目录的 package-lock.json,
/developtools/ace-ets2bundle/compiler# /developtools/ace-js2bundle/ace-loader#
运行prebuilt_download.sh;结果,报错更多;
3)/bin/sh: 1: lz4c: not found;
sudo apt-get install liblz4-tool后,报错需要ca-certificates-java,openjdk-17-jre-headless
然后 sudo apt install ca-certificates-java,安装成功;
然后 sudo apt install openjdk-17-jre-headless,安装成功;
4)fatal error: openssl/bio.h: 没有那个文件或目录;
sudo apt-get install libssl-dev;
5)Warning: dtc tool does not exists,genext2fs: 未找到命令;
sudo apt install genext2fs;
以上报错,遇到了可按其中解决方法解决,没遇到可不安装相应的包,如果遇到了奇怪的问题,也可尝试安装;
3、接着编译 ./build.sh --product-name rk3568 --ccache;
终于,千辛万苦,终于编译成功!!!!!!!!!
4、检查编译结果。编译完成后,log中显示如下:
[OHOS INFO] rk3568 build success
[OHOS INFO] cost time: 0:03:40
=====build successful=====
2022-05-13 13:35:59
5、编译所生成的文件都归档在out目录下,结果镜像输出在
out/rk3568/packages/phone/images 目录下;
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)