开发准备
参考网址:
华为官方文档(以Hi3861芯片为例)
源码获取:https://device.harmonyos.com/cn/docs/start/get-code/oem_sourcecode_guide-0000001050769927#ZH-CN_TOPIC_0000001050769927__section61172538310
环境搭建:https://device.harmonyos.com/cn/docs/start/introduce/oem_quickstart_3861_build-0000001054781998
源码编译(以Hi3861芯片为例):https://device.harmonyos.com/cn/docs/start/introduce/oem_wifi_start_helloword-0000001051930719
华为开发者论坛
Harmony OS 开发避坑指南——源码下载和编译:https://developer.huawei.com/consumer/cn/forum/topicview?tid=0202358095357830874&fid=0101303901040230869
系统准备
需要一个Ubuntu系统和一个Windows系统,我使用的是Ubuntu 18.04和Win10系统,Win10下载好需要的安装包,主要有鸿蒙源码、gn.1523.tar、ninja.1.9.0.tar、llvm-linux-9.0.0-34042.tar、hc-gen-0.65-linux.tar、gcc_riscv32-linux-7.3.0.tar.gz,在官方文档网址处有下载链接。将这些安装包复制到Ubuntu虚拟机里即可。
环境配置过程
一开始我是按照官方文档的方法进行配置的,但是Ubuntu18系统的python3只能链接到python3.6,改成python3.8以后会使终端无法打开,而维持python3的3.6版本后续编译过程会报错,所以就采用上面华为开发者论坛中提到的方法。
首先,将源码解压到~/harmonyos/openharmony目录中
把gn.1523.tar、ninja.1.9.0.tar、llvm-linux-9.0.0-34042.tar、hc-gen-0.65-linux.tar、gcc_riscv32-linux-7.3.0.tar.gz几个包解压后移动到home目录中,然后按照华为开发者论坛里的教程向~/.bashrc中添加上面几个包的路径配置。
接下来首先安装python3.8:在终端中输入
// 安装python3.8和pip
sudo apt install python3.8
sudo apt install python3-pip
安装完成后,安装virtualenv并运行:
安装virtualenv
pip3 install vritualenv // 创建使用python3.8为默认python解释器的virtualenv mkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv // 激活 virtualenv,激活后的pip3 install会将包文件缓存到相应的子目录中 source ~/harmonyos/venv/bin/activate //安装 setuptools 和 kconfiglib pip3 install setuptools kconfiglib //安装编译hi3861需要的pip包 pip3 install scons ecdsa pycryptodome pip3 install --upgrade --ignore-installed six // 可选:将激活脚本添加到 bashrc 中,下次登录默认自动激活此python虚拟环境,可以使用 deactivate 使虚拟环境无效 cat <\<EOF \>> ~/.bashrc source ~/harmonyos/venv/bin/activate EOF
上述安装完成后,首先在终端中激活虚拟环境:
激活虚拟环境,激活后 deactivate 命令可使当前虚拟环境无效
source ~/harmonyos/venv/bin/activate
然后就可以进入~/harmonyos/openharmony 中进行源码的编译了:
编译3861目标平台的命令
python build.py wifiiot
编译过程中如果出现BUILD SUCCESS字样即表示编译成功,在源码的out文件夹下可以看到编译后的文件。