获取源码及Ubuntu编译环境准备 - HarmonyOS技术社区 - 电子技术论坛 - 广受欢迎的专业电子论坛
分享 收藏 返回

旧念 关注 私信
[文章]

获取源码及Ubuntu编译环境准备

系统要求:Ubuntu16.04及以上64位系统版本。
编译环境搭建分为如下几步:
  • 获取源码
  • 安装和配置python
  • 安装gn
  • 安装ninja
  • 安装LLVM
  • 安装hb
须知:
  • 针对Ubuntu编译环境我们提供了对应的Docker,该Docker封装了相关编译工具,选择使用Docker的开发者可跳过此章节。Docker使用可参考Docker方式获取编译环境
  • 通常系统默认安装samba、vim等常用软件,需要做适当适配以支持Linux服务器与Windows工作台之间的文件共享。
  • 想要详细了解OpenHarmony编译构建模块功能的开发者可参考编译构建使用指南
获取软件
Linux服务器通用环境配置需要的工具及其获取途径如下表所示:
表 1  Linux服务器开发工具及获取途径

开发工具
用途
获取途径
源码
功能开发
参考源码获取
Python3.7+
编译构建工具
通过互联网获取
gn
产生ninja编译脚本
https://repo.huaweicloud.com/harmonyos/compiler/gn/1717/linux/gn-linux-x86-1717.tar.gz
ninja
执行ninja编译脚本
https://repo.huaweicloud.com/harmonyos/compiler/ninja/1.9.0/linux/ninja.1.9.0.tar

LLVM


编译工具链

Master及OpenHarmony_v2.x分支/标签,请使用以下10.0.1版本:
https://repo.huaweicloud.com/harmonyos/compiler/clang/10.0.1-62608/linux/llvm.tar.gz
OpenHarmony_v1.x分支/标签,请使用以下9.0.0版本:
https://repo.huaweicloud.com/harmonyos/compiler/clang/9.0.0-36191/linux/llvm-linux-9.0.0-36191.tar
hb
OpenHarmony编译构建命令行工具
通过互联网获取
其他工具
编译构建中依赖的其他工具(如打包、镜像制作等)
通过互联网获取

须知:
  • 如果后续通过“HPM组件方式”或“HPM包管理器命令行工具方式”获取源码,不需要安装gn、ninja编译工具。
  • (推荐)如果后续通过“镜像站点方式”或“代码仓库方式”获取源码,需要安装gn、ninja、LLVM编译工具。安装gn、ninja、LLVM编译工具时,请确保编译工具的环境变量路径唯一。
获取源码
开发者需要在Linux服务器上下载并解压一套源代码,请参见源码获取
安装和配置Python
  • 打开Linux编译服务器终端。
  • 输入如下命令,查看python版本号,需使用python3.7以上版本。
    1. python3 --version

    如果低于python3.7版本,不建议直接升级,请按照如下步骤重新安装。以python3.8为例,按照以下步骤安装python。
    • 运行如下命令,查看Ubuntu版本:
    1. cat /etc/issue

    • 根据Ubuntu不同版本,安装python。
      • 如果Ubuntu 版本为18+,运行如下命令。
        1. sudo apt-get install python3.8

      • 如果Ubuntu版本为16。
        a. 安装依赖包
        1. sudo apt update && sudo apt install software-properties-common

        b. 添加deadsnakes PPA 源,然后按回车键确认安装。
        1. sudo add-apt-repository ppa:deadsnakes/ppa

        c. 安装python3.8
        1. sudo apt upgrade && sudo apt install python3.8

  • 设置python和python3软链接为python3.8。
    1. sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1
    2. sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1

  • 安装并升级Python包管理工具(pip3),任选如下一种方式。
    • 命令行方式:
      1. sudo apt-get install python3-setuptools python3-pip -y
      2. sudo pip3 install --upgrade pip

    • 安装包方式:
      1. curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
      2. python get-pip.py

安装gn
  • 打开Linux编译服务器终端。
  • 在根目录下创建gn文件夹。
    1. mkdir ~/gn

  • 解压gn安装包至~/gn路径下。
    1. tar -xvf gn-linux-x86-1717.tar.gz -C ~/gn

  • 设置环境变量。
    1. vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
    1. export PATH=~/gn:$PATH

  • 生效环境变量。
    1. source ~/.bashrc

安装ninja
  • 打开Linux编译服务器终端。
  • 下载ninja工具。
  • 解压ninja安装包至~/ninja路径下。
    1. tar -xvf ninja.1.9.0.tar -C ~/

  • 设置环境变量。
    1. vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
    1. export PATH=~/ninja:$PATH

  • 生效环境变量。
    1. source ~/.bashrc

安装LLVM
  • 打开Linux编译服务器终端。
  • 说明:针对OpenHarmony_v1.x分支/标签,使用此链接下载LLVM工具
  • 解压LLVM安装包至~/llvm路径下。
    1. tar -zxvf llvm.tar.gz -C ~/

    说明:针对OpenHarmony_v1.x分支/标签,使用如下命令解压:
    1. tar -xvf llvm-linux-9.0.0-36191.tar -C ~/

  • 设置环境变量。
    1. vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
    1. export PATH=~/llvm/bin:$PATH

  • 生效环境变量。
    1. source ~/.bashrc

安装hb前提条件
请先安装Python 3.7.4及以上版本,请见安装和配置Python。
安装方法
  • 运行如下命令安装hb
    1. python3 -m pip install --user ohos-build

  • 设置环境变量
    1. vim ~/.bashrc

    将以下命令拷贝到.bashrc文件的最后一行,保存并退出。
    1. export PATH=~/.local/bin:$PATH

    执行如下命令更新环境变量。
    1. source ~/.bashrc

  • 执行"hb -h",有打印以下信息即表示安装成功:
    1. usage: hb

    2. OHOS build system

    3. positional arguments:
    4.   {build,set,env,clean}
    5.     build               Build source code
    6.     set                 OHOS build settings
    7.     env                 Show OHOS build env
    8.     clean               Clean output

    9. optional arguments:
    10.   -h, --help            show this help message and exit

卸载方法
  1. python3 -m pip uninstall ohos-build

须知:如果安装hb的过程中遇到问题,请参见下文常见问题进行解决。
安装其他工具安装方法
  • apt安装全部依赖的工具
    1. sudo apt-get install build-essential gcc g++ make zlib* libffi-dev e2fsprogs pkg-config flex bison perl bc openssl libssl-dev libelf-dev libc6-dev-amd6

更多回帖

×
发帖