OpenHarmoney 源码编译步骤(基于3.2 beta3)

        在使用开源Openharmoney的时候,要想每次使用到最新的内核基线包的功能就需要经常更新系统。但是对于新手来说确实是有点困难,很多朋友对编译环境就搞的头大,最开始的时候,我自己也是,源码编译时间长就不说了,经常失败就是最大的烦恼。经过一段时间摸索后做出以下总结。

1.下载最新的系统源码: 

docs: OpenHarmony documentation | OpenHarmony开发者文档 - Gitee.com

根据自己的需要下载:

个人习惯使用wget下载到当前目录下,然后使用 tar -xvf  code.XX.tar.gz 来解压。

有一点需要注意的事就是,如果你使用的事虚拟机,最好需要分配200G可用空间,当然越大越好。

2.安装以下依赖项:
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 device-tree-compiler lib32stdc++6 lib32z1 libncurses5-dev lib32ncurses6

3.等所有依赖安装成功后再源码根目录执行:
bash build/prebuilts_download.sh

执行上面的脚本下载依赖库根据网络情况,正常情况是可以成功的。前提是需要安装依赖项需要安装成功,如果依赖项安装失败就需要根据实际情况先把依赖项需要的都先安装成功。

4.运行如下命令安装hb并更新至最新版本,以下三个安装一个成功就可以了,在使用的时候有的系统环境的原因会失败,可以都尝试下
pip3 install --user build/lite  #python3 -m pip install --user ohos-build  #pip install build/lite
卸载:pip3 uninstall ohos-build #正常情况下是不使用

在源码目录执行"hb -h",界面打印以下信息即表示安装成功:
usage: hb
OHOS build system
positional arguments:
  {build,set,env,clean}
    build               Build source code
    set                 OHOS build settings
    env                 Show OHOS build env
    clean               Clean output
optional arguments:
  -h, --help            show this help message and exit

5.设置环境变量
vim ~/.bashrc
将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
export PATH=~/.local/bin:$PATH
执行如下命令更新环境变量。
source ~/.bashrc

6.到这来就有两种编译源码方式了:

       第一种就是使用:

hb set   #设置product-name

hb build

        第二种就是:

                #进入源码根目录,执行如下命令进行版本编译:
                ./build.sh --product-name XXXX –ccache

当然最终效果都是一样的,这个编译过程根据个人电脑性能有关了,本人因为用的是虚拟机就有点长了。

下面留着到时候使用Docker镜像的方式编译源码

问题汇总:

因为之前碰到的问题解决了都没有记录,后面会把遇到的问题都记录下来供大家参考:

1.

ERROR at //build/core/gn/loader.gni:82:15: Script returned non-zero exit code.
load_result = exec_script(build_loader_script, arguments, "string")
              ^----------
Current dir: /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/out/unionpi_tiger/
Command: /usr/bin/env /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/build/loader/load.py --subsystem-config-file /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/out/preloader/unionpi_tiger/subsystem_config.json --platforms-config-file /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/out/preloader/unionpi_tiger/platforms.build --exclusion-modules-config-file /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/out/preloader/unionpi_tiger/exclusion_modules.json --source-root-dir /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/ --gn-root-out-dir /home/jwq/hm/code-v3.2-Beta3/OpenHarmony/out/unionpi_tiger --target-os ohos --target-cpu arm --os-level standard --load-test-config --ignore-api-check xts common developertest
Returned 1.
stderr:

Traceback (most recent call last):
  File "/home/jwq/hm/code-v3.2-Beta3/OpenHarmony/build/loader/load.py", line 21, in <module>
    from loader import subsystem_info  # noqa: E402
ImportError: No module named loader

See //build/core/gn/BUILD.gn:21:1: whence it was imported.
import("//build/core/gn/loader.gni")

解决办法:缺少依赖,安装下面的就可解决(我的是这样的)

pip3 install --trusted-host https://repo.huaweicloud.com -i https://repo.huaweicloud.com/repository/pypi/simple requests setuptools pymongo kconfiglib pycryptodome ecdsa ohos-build pyyaml prompt_toolkit==1.0.14 redis json2html yagmail python-jenkins 
pip3 install esdk-obs-python --trusted-host pypi.org 
pip3 install six --upgrade --ignore-installed six

2.hb安装异常处理

hb安装过程中出现乱码、段错误

  • 现象描述

    执行“python3 -m pip install --user ohos-build”出现乱码、段错误(segmentation fault)。

  • 可能原因

    pip版本过低。

  • 解决办法

    执行如下命令升级pip。

    python3 -m pip install -U pip

hb安装过程中提示"cannot import 'sysconfig' from 'distutils'"

  • 现象描述

    执行“python3 -m pip install --user ohos-build”提示"cannot import 'sysconfig' from 'distutils'"

  • 可能原因

    缺少distutils模块。

  • 解决办法

    执行如下命令安装。

    sudo apt-get install python3.8-distutils

hb安装过程中提示"module 'platform' has no attribute 'linux_distribution'"

  • 现象描述

    执行“python3 -m pip install --user ohos-build”提示"module 'platform' has no attribute 'linux_distribution'"

  • 可能原因

    python3 pip安装兼容性问题。

  • 解决办法

    执行如下命令重新安装pip。

    sudo apt remove python3-pip
    curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
    python get-pip.py

hb安装过程中提示"Could not find a version that satisfies the requirement ohos-build"

  • 现象描述

    执行“python3 -m pip install --user ohos-build”提示"Could not find a version that satisfies the requirement ohos-build"

  • 可能原因

    可能是网络环境较差导致的安装失败。

  • 解决办法

    1. 请检查网络连接是否正常。如果网络有问题,请修复网络问题后重新安装。

    2. 若网络正常,请尝试指定临时pypi源的方式安装:

      python3 -m pip install -i https://pypi.tuna.tsinghua.edu.cn/simple ohos-build

3. [OHOS ERROR] cp: cannot create regular file 'obj/third_party/jsframework/runtime/css-what/.git/objects/dd/9d8b09685be77c0a0f37ef907657363a00bac2': Permission denied

解决办法:

        源码将根目录直接加777权限(sudo chmod -R  777 *),个人也是偷懒,觉得避免后面还有其他权限问题,蔡这样干的。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

深宫大院

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值