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

2024-03-01 09:20

本文主要是介绍2 开源鸿蒙OpenHarmony4.1源码下载和编译流程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

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

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

  • 前景提要:

  • 确定你要编译哪一块开发板:

    • 我选择qemu_mini_system_demo 这个板子
    • 编译形态整体说明,含QEMU,可以编译哪些开发板和芯片
    • qemu模拟器 + arm核 + mini轻型系统的配置有:
      • qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4
      • qemu_cm55_mini_system_demo arm_mps3_an547 qemu liteos_m mini arm-cortex-m55
      • Qemu Arm Cortex-m4 mps2-an386 教程
      • Qemu Arm Cortex-m55 mps3-an547 教程
      • QEMU(Quick Emulator)鸿蒙QEMU模拟器操作指南
  • 安装基础开发环境:安装VMware虚拟机+Ubuntu发行版系统+Git软件+repo软件+Python

  • 编译开源鸿蒙源码前先下载源码

    • 步骤见:开源鸿蒙OpenHarmony niobe407 STM32F407IGT6芯片轻型系统全量源码4.1版本下载流程
    • 使用 repo init -u https://gitee.com/openharmony/manifest -b master -m chipsets/qemu.xml -g ohos:mini 初始化对应于QEMU模拟器(类似于开发板)的全套源码
    • 按前面的步骤下载鸿蒙源码
  • 编译:

  • 编译的相关介绍

    • 需要使用hb命令,也就是ohos-build
      • 了解OpenHarmony-编译
      • OpenHarmony支持hb和build.sh两种编译方式。
      • 安装hb编译工具
      • 安装库和工具集
      • .sh方式编译构建指导
    • 安装流程介绍:
      • hb安装异常处理
      • 快速入门-如何编译程序
      • 安装库和工具集-编译流程

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

    • 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 进行编译设置

    • 第一步目录输入. 选择源码根目录的当前目录
    • 第二步选择开发板,我使用上下方向键选择qemu_mini_system_demo这款qemu的模拟器开发板,ARM Cortex-M4内核的虚拟芯片
      • 编译形态整体说明,含QEMU,可以编译哪些开发板和芯片
      • Qemu Arm Cortex-m4 mps2-an386 教程
      • qemu_mini_system_demo arm_mps2_an386 qemu liteos_m mini arm-cortex-m4
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模拟器进行运行。

  • 防止格式被破坏

* 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模拟器进行运行。
  • 参考资料:
    • 基于OpenHarmony搭建的Qemu仿真实验环境
    • ohos-build 安装失败分析
    • 基于Ubuntu20.04搭建OpenHarmony v3.0.6的qemu仿真环境
    • 基于OpenHarmony搭建的Qemu仿真实验环境
    • 搭建一个鸿蒙运行环境,来一窥神秘鸿蒙

这篇关于2 开源鸿蒙OpenHarmony4.1源码下载和编译流程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/761962

相关文章

将Java项目提交到云服务器的流程步骤

《将Java项目提交到云服务器的流程步骤》所谓将项目提交到云服务器即将你的项目打成一个jar包然后提交到云服务器即可,因此我们需要准备服务器环境为:Linux+JDK+MariDB(MySQL)+Gi... 目录1. 安装 jdk1.1 查看 jdk 版本1.2 下载 jdk2. 安装 mariadb(my

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

鸿蒙中Axios数据请求的封装和配置方法

《鸿蒙中Axios数据请求的封装和配置方法》:本文主要介绍鸿蒙中Axios数据请求的封装和配置方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.配置权限 应用级权限和系统级权限2.配置网络请求的代码3.下载在Entry中 下载AxIOS4.封装Htt

鸿蒙中@State的原理使用详解(HarmonyOS 5)

《鸿蒙中@State的原理使用详解(HarmonyOS5)》@State是HarmonyOSArkTS框架中用于管理组件状态的核心装饰器,其核心作用是实现数据驱动UI的响应式编程模式,本文给大家介绍... 目录一、@State在鸿蒙中是做什么的?二、@Spythontate的基本原理1. 依赖关系的收集2.

idea maven编译报错Java heap space的解决方法

《ideamaven编译报错Javaheapspace的解决方法》这篇文章主要为大家详细介绍了ideamaven编译报错Javaheapspace的相关解决方法,文中的示例代码讲解详细,感兴趣的... 目录1.增加 Maven 编译的堆内存2. 增加 IntelliJ IDEA 的堆内存3. 优化 Mave

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

Java编译生成多个.class文件的原理和作用

《Java编译生成多个.class文件的原理和作用》作为一名经验丰富的开发者,在Java项目中执行编译后,可能会发现一个.java源文件有时会产生多个.class文件,从技术实现层面详细剖析这一现象... 目录一、内部类机制与.class文件生成成员内部类(常规内部类)局部内部类(方法内部类)匿名内部类二、

Java实现文件图片的预览和下载功能

《Java实现文件图片的预览和下载功能》这篇文章主要为大家详细介绍了如何使用Java实现文件图片的预览和下载功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... Java实现文件(图片)的预览和下载 @ApiOperation("访问文件") @GetMapping("

Python实现无痛修改第三方库源码的方法详解

《Python实现无痛修改第三方库源码的方法详解》很多时候,我们下载的第三方库是不会有需求不满足的情况,但也有极少的情况,第三方库没有兼顾到需求,本文将介绍几个修改源码的操作,大家可以根据需求进行选择... 目录需求不符合模拟示例 1. 修改源文件2. 继承修改3. 猴子补丁4. 追踪局部变量需求不符合很