OpenHarmony系统编译环境配置

599 阅读3分钟

总结OpenHarmony系统开发的知识,本系列基于 OpenHarmony-v3.2.3-Release 版本

一、构建编译环境

Ubuntu 20.4 环境配置

1、将Ubuntu Shell环境修改为bash。

  • ls -l /bin/sh 查看当前环境
  • sudo dpkg-reconfigure dash 打开终端工具,执行如下命令,输入密码,然后选择No,将Ubuntu shell由dash修改为bash。

image.png

2、安装Visual Studio Cod

Visual Studio Code为鸿蒙开发提供可视化环境,华为的DevEco Device Tool是基于Visual Studio Code的扩展,需要以插件方式安装到Visual Studio Code上面运行。

开发环境要求:Visual Studio Code为1.62及以上版本。 下载安装包:code.visualstudio.com/

3、下载DevEco Device Tool最新Linux版本软件包。

  • 解压DevEco Device Tool软件包并对解压后的文件夹进行赋权。
    • unzip devicetool-linux-tool-{Version}.zip
  • 进入解压后的文件夹,执行如下命令,赋予安装文件可执行权限,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。
    • chmod u+x devicetool-linux-tool-{Version}.sh
  • 执行如下命令,安装DevEco Device Tool,其中devicetool-linux-tool-{Version}.sh请根据实际进行修改。
    • sudo ./devicetool-linux-tool-{Version}.sh -- --install-plugins
  • 在用户协议和隐私声明签署界面,请详细阅读用户协议和隐私声明,需签署同意用户协议和隐私声明才能进行下一步的安装,可通过键盘的上下按键进行选择。 image.png
  • 安装完成后,当界面输出“DevEco Device Tool successfully installed.”时,表示DevEco Device Tool安装成功。 image.png

4、启动Visual Studio Code

单击Ubuntu桌面左下角“点阵”图标,选择“All”,找到Visual Studio Code图标。右键单击图标,在弹出的菜单中选择“Add to Favorite”,可将图标添加到桌面左侧;左键点击图标,启动Visual Studio Code。

image.png

image.png

二、新建工程&导入工程

这里提一句,华为真的真的很友好,直接可以从VS Code进行系统源码的下载和编译以及后续的烧录工作。简直不要太爽!!!!

1、新建工程

  • 点击【新建工程】进行新工程的创建选择与配置,可以看到默认页面,所有的操作都是点选的方式,非常简单。
    • 选择系统源码版本
    • 设置工程名称
    • 设置自己本机电脑的存储路径
    • 设置要开发的SOC芯片版本,本教程选择的是 RK3568
    • 最后点击【确定】就可以进入漫长的下载,根据自己的网速时间不一样

image.png

  • 选择要开发的项目类型及项目源码版本

image.png

2、导入工程

  • 点击【导入工程】进行本地源码的选择与配置

image.png

image.png

三、编译项目

1、下载各种编译器和工具包

下面的命令分别下载了gn、ninja、LLVM、hc-gen包,一步到位

# 下载gn/ninja/LLVM/hc-gen包
URL_PREFIX=https://repo.huaweicloud.com/harmonyos/compiler
DOWNLOAD_DIR=~/Downloads                # 下载目录,可自行修改
TOOLCHAIN_DIR=~/harmonyos/toolchain     # 工具链存放目录,可自行修改

[ -e $DOWNLOAD_DIR ] || mkdir $DOWNLOAD_DIR
[ -e $TOOLCHAIN_DIR ] || mkdir -p $TOOLCHAIN_DIR

wget -P $DOWNLOAD_DIR $URL_PREFIX/gn/1523/linux/gn.1523.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/ninja/1.9.0/linux/ninja.1.9.0.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/clang/9.0.0-34042/linux/llvm-linux-9.0.0-34042.tar
wget -P $DOWNLOAD_DIR $URL_PREFIX/hc-gen/0.65/linux/hc-gen-0.65-linux.tar

# 编译 hi3861 需要 riscv 编译工具链
wget -P $DOWNLOAD_DIR $URL_PREFIX/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

# 解压gn/ninja/LLVM/hc-gen包:
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gn.1523.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/ninja.1.9.0.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/llvm-linux-9.0.0-34042.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/hc-gen-0.65-linux.tar
tar -C $TOOLCHAIN_DIR/ -xvf $DOWNLOAD_DIR/gcc_riscv32-linux-7.3.0.tar.gz

# 向 ~/.bashrc 中追加gn/ninja/LLVM/hc-gen路径配置:
cat <<EOF >> ~/.bashrc
TOOLCHAIN_DIR=$TOOLCHAIN_DIR
export PATH=\$TOOLCHAIN_DIR/gn:\$PATH
export PATH=\$TOOLCHAIN_DIR/ninja:\$PATH
export PATH=\$TOOLCHAIN_DIR/llvm/bin:\$PATH
export PATH=\$TOOLCHAIN_DIR/hc-gen:\$PATH
export PATH=\$TOOLCHAIN_DIR/gcc_riscv32/bin:\$PATH
export PATH=~/.local/bin:\$PATH       # 用户pip二进制工具目录
EOF

# 生效环境变量
source ~/.bashrc
  • 执行 ./build/build_scripts/env_setup.sh 进行自动化配置
  • 执行./build/prebuilts_download.sh 进行自动化配置

2、工程配置

image.png

3、启动构建

image.png