2 开源鸿蒙OpenHarmony4.1源码下载和编译流程

开源鸿蒙OpenHarmony源码下载和编译流程

作者 将狼才鲸
日期 2024-02-29


  • 编译步骤(先安装编译工具):

    • python3 -V 查看python版本,如果是3.8以下,则:

      • sudo apt install python3.8
      • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
      • sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
      • sudo update-alternatives --config python3
      • python3 -V
    • python3 -m pip install --user ohos-build

      • pip3是Python的包管理工具,用于安装、升和管理Python包
      • 需要python3.8以上的版本
  • 如果你是Ubuntu18.04,则先执行

    • cd /usr/lib/python3/dist-packages
    • cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.so
    • cd -
  • 先安装依赖库

  • sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g+±multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 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 genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev 安装编译时依赖的软件和库

    • 仔细看安装后的信息,如果提示有哪些包未安装成功,则你需要单独安装
    • sudo apt-get install g+±multilib 这里其实是g加号加号减号multilib,会被csdn识别成别的格式
    • sudo apt-get install gcc-arm-linux-gnueabi
    • sudo apt-get install gcc-multilib
    • sudo apt-get install lib32ncurses5-dev
    • sudo apt-get install lib32z1-dev
    • sudo apt-get install libc6-dev-i386
  • 按前面的流程下载全量源码,或者特定开发板特定芯片的源码

  • 进入到你下载的源码根目录

  • bash build/prebuilts_download.sh 安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条

  • python3 -m pip install --user build/hb

  • gedit ~/.bashrc

  • 将 export PATH=~/.local/bin:$PATH 加入到最后一行并保存退出

  • source ~/.bashrc

  • hb --help 这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错

    • python3 -m pip uninstall ohos-build
    • python3 -m pip install --user ohos-build==0.4.3
  • hb set 进行编译设置

shell 复制代码
jim@ubuntu:~/openHarmony$ hb set
[OHOS INFO] Input code path: .
OHOS Which product do you need?  qemu_mini_system_demo
  • hb build -f 开始编译,有报错则处理报错

  • 出现build success表示编程成功,然后进行烧录,或者直接用QEMU模拟器进行运行。

  • 防止格式被破坏

shell 复制代码
  * python3 -V  查看python版本,如果是3.8以下,则:
    * sudo apt install python3.8
	* sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1
	* sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 2
	* sudo update-alternatives --config python3
	* python3 -V
  
  * python3 -m pip install --user ohos-build
    * pip3是Python的包管理工具,用于安装、升和管理Python包
	* 需要python3.8以上的版本

* 安装流程介绍:
  * [hb安装异常处理](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-pkg-common-hberr.md/)  
  * [快速入门-如何编译程序](https://gitee.com/openharmony/docs/tree/master/zh-cn/device-dev/quick-start)
  * [安装库和工具集-编译流程](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-pkg-install-package.md)

* 如果你是Ubuntu18.04,则先执行
  * cd /usr/lib/python3/dist-packages
  * cp apt_pkg.cpython-36m-x86_64-linux-gnu.so apt_pkg.so apt_pkg.cpython-39m-x86_64-linux-gnu.so apt_pkg.so
  * cd -

* 先安装依赖库
* sudo apt-get update && sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib gcc-arm-linux-gnueabi libc6-dev-i386 libc6-dev-amd64 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 genext2fs device-tree-compiler make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarf-dev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfs-tools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev  安装编译时依赖的软件和库
  * 仔细看安装后的信息,如果提示有哪些包未安装成功,则你需要单独安装
  * sudo apt-get install g++-multilib
  * sudo apt-get install gcc-arm-linux-gnueabi
  * sudo apt-get install gcc-multilib
  * sudo apt-get install lib32ncurses5-dev
  * sudo apt-get install lib32z1-dev
  * sudo apt-get install libc6-dev-i386

* 按前面的流程下载全量源码,或者特定开发板特定芯片的源码
* 进入到你下载的源码根目录
* bash build/prebuilts_download.sh  安装和芯片相关的编译器和二进制工具,全自动的,会下载的同时进行安装,要等待一段时间,有进度条
* python3 -m pip install --user build/hb
* gedit ~/.bashrc
* 将 export PATH=~/.local/bin:$PATH 加入到最后一行并保存退出
* source ~/.bashrc
* hb --help    这个命令执行时可能有报错,有什么错误就解决什么错误,例如用下面方法解决报错
  * python3 -m pip uninstall ohos-build
  * python3 -m pip install --user ohos-build==0.4.3
* hb set  进行编译设置
  * 第一步目录输入.  选择源码根目录的当前目录
  * 第二步选择开发板,我使用上下方向键选择qemu_mini_system_demo这款qemu的模拟器开发板,ARM Cortex-M4内核的虚拟芯片
    * [编译形态整体说明,含QEMU,可以编译哪些开发板和芯片](https://docs.openharmony.cn/pages/v4.0/zh-cn/device-dev/quick-start/quickstart-appendix-compiledform.md/)
    * [Qemu Arm Cortex-m4 mps2-an386 教程](https://gitee.com/openharmony/device_qemu/blob/master/arm_mps2_an386/README_zh.md)
    * qemu_mini_system_demo	arm_mps2_an386	qemu	liteos_m	mini	arm-cortex-m4

* hb build -f  开始编译,有报错则处理报错
* 出现build success表示编程成功,然后进行烧录,或者直接用QEMU模拟器进行运行。
相关推荐
芯橦1 小时前
【瑞昱RTL8763E】音频
单片机·嵌入式硬件·mcu·物联网·音视频·visual studio code·智能手表
zhongcx1 小时前
鸿蒙应用示例:DevEco Testing 工具的常用功能及使用场景
harmonyos
@海~涛4 小时前
鸿蒙OpenHarmony
华为·harmonyos
夜间去看海5 小时前
基于单片机的智能浇花系统
单片机·嵌入式硬件·智能浇花
VirtuousLiu6 小时前
LM74912-Q1用作电源开关
单片机·嵌入式硬件·ti·电源设计·lm74912·电源开关
打地基的小白6 小时前
软件I2C-基于江科大源码进行的原理解析和改造升级
stm32·单片机·嵌入式硬件·通信模式·i2c
Echo_cy_6 小时前
STM32 DMA+AD多通道
stm32·单片机·嵌入式硬件
朴人6 小时前
【从零开始实现stm32无刷电机FOC】【实践】【7.2/7 完整代码编写】
stm32·单片机·嵌入式硬件·foc
追梦少年时6 小时前
STM32中断——外部中断
stm32·单片机·嵌入式硬件
bai_lan_ya7 小时前
stm32定时器中断和外部中断
stm32·单片机·嵌入式硬件