源码编译

About 3 min

源码编译

安装编译工具链后,即可对源码进行编译。在Linux环境下获取编译工具链有以下两种方式,二者选其一即可:

  1. Docker方式

    OpenHarmony标准系统为开发者提供的Docker环境已经将对应的编译工具链进行了封装,开发者可省略对应工具的安装。

  2. 安装包方式

    使用安装包方式获取编译工具链时,开发者需自行安装相应的依赖工具。

使用Docker方式获取编译工具链

执行prebuilts

在源码根目录下执行脚本,安装编译器及二进制工具。

bash build/prebuilts_download.sh
1

安装Docker

请参考官方指导

获取Docker环境

方式一:从HuaweiCloud SWR上直接获取Docker镜像进行构建:

  1. 获取Docker镜像。

    docker pull swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.7
    
    1
  2. 进入源码根目录执行如下命令,从而进入Docker构建环境。

    docker run -it -v $(pwd):/home/openharmony swr.cn-south-1.myhuaweicloud.com/openharmony-docker/openharmony-docker-standard:0.0.7
    
    1

方式二:通过Dockerfile 构建本地Docker镜像进行构建

  1. 获取Dockerfile脚本文件,用来构建本地Docker镜像。

    git clone https://gitee.com/openharmony/docs.git
    
    1
  2. 进入Dockerfile代码目录路径执行Docker镜像构建命令。

    cd docs/docker/standard
    ./build.sh
    
    1
    2
  3. 进入源码根目录执行如下命令,从而进入Docker构建环境。

    docker run -it -v $(pwd):/home/openharmony openharmony-docker-standard:0.0.7
    
    1

使用安装包方式获取编译工具链

安装依赖工具

请在终端中输入如下命令安装编译相关的依赖工具:

sudo apt-get update && sudo apt-get install 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
1

说明: 以上安装命令适用于Ubuntu18.04,其他版本请根据安装包名称采用对应的安装命令。其中Python要求安装Python 3.7及以上版本,此处以Python 3.8为例。

执行prebuilts

在源码根目录下执行脚本,安装编译器及二进制工具。

bash build/prebuilts_download.sh
1

编译

  1. 进入源码根目录,执行如下命令进行版本编译。

    说明: 使用Docker方式获取编译工具链的,请直接通过获取Docker环境最后一步进入的Docker构建环境执行如下命令。

    ./build.sh --product-name rk3568 --ccache
    
    1
  2. 检查编译结果。编译完成后,log中显示如下:

    post_process
    =====build rk3568 successful.
    
    1
    2

    编译所生成的文件都归档在out/{device_name}/目录下,结果镜像输出在out/{device_name}/packages/phone/images/ 目录下。

    说明: 其他模块化编译操作,可参见编译构建指导

  3. 编译源码完成,请进行镜像烧录,具体请参见镜像烧录

说明: 若使用Docker环境进行编译,执行exit命令即可退出Docker。