移植speexdsp到OpenHarmony标准系统③

四、将三方库加入到OpenHarmony的编译体系

根据上一步分析结果,编写gn文件,将三方库加入到OpenHarmony的编译体系。

OpenHarmony编译构建子系统提供了一个基于Gn和ninja的编译构建框架。根据产品配置,编译生成对应的镜像包。其中编译构建流程为:

  • 使用Gn配置构建目标。
  • Gn运行后会生成ninja文件。
  • 通过运行ninja来执行编译任务。

OpenHarmony三方库编译环境搭建

本次移植时在openharmony3.2Beta1版本上运行的,所以需要准备openharmony3.2Beta1的源码。
先在Widows上安装虚拟机,在虚拟机上安装Ubuntu18.04或者20.04。笔者使用的为Ubuntu20.04。

1.将Ubuntu Shell环境修改为bash

  • 打开终端执行
sudo dpkg-reconfigure dash
  • 将Shell由dash改为bash。

  • 选择<否>

  • 更改成功如下:

2.下载华为集成开发环境 DevEco Device Tool Linux版本,目前最新版本号为3.1.0.200

HUAWEI DevEco Device Tool(以下简称DevEco Device Tool)是OpenHarmony面向智能设备开发者提供的一站式集成开发环境,支持OpenHarmony的组件按需定制,支持代码编辑、编译、烧录和调试等功能,支持C/C++语言,以插件的形式部署在Visual Studio Code上。

  • 直接在Ubuntu上打开firefox输入下载地址下载

  • 解压DevEco Device Tool安装包,并对解压后的文件赋权
unzip devicetool-linux-tool-3.1.0.200.zip
chmod u+x devicetool-linux-tool-3.1.0.200.sh

  • 安装DevEco Device

  • 执行命令安装DevEco Device

sudo ./devicetool-linux-tool-3.1.0.200.sh

终端打印出这条信息说明安装成功

3.获取标准系统源码
执行命令sudo apt-get install git git-lfs安装git客户端和git-lfs

  • 配置git用户信息
git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

git config --global credential.helper store执行这个命令会在本地生成一个文本,上边记录配置。然后再拉取代码就不用再输入账号信息了。

  • 进入gitee官网个人主页,个人头像下方就是user.name
  • 再进入设置点击邮箱管理就可以得到你的your-email-address

  • 安装gitee码云repo工具

sudo apt-get install curl
sudo curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o /usr/local/bin/repo
sudo chmod a+x /usr/local/bin/repo
sudo pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests

  • 使用repo+https下载发布Tag节点源码

创建源码存放目录
进入创建的源码存放目录,执行以下命令下载源码

sudo ln -sf /usr/bin/python3 /usr/bin/python
repo init -u https://gitee.com/openharmony/manifest -b refs/tags/OpenHarmony-v3.2-Beta1 --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

如果要下载最新分支的代码则执行:
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify

3.在源码目录下执行脚本安装编译器及二进制工具
下载的prebuilts二进制默认存放在与OpenHarmony同目录下的OpenHarmony_2.0_canary_prebuilts下。

bash build/prebuilts_download.sh

如果执行bash build/prebuilts_download.sh出现以下warning,在源码/prebuilts/python/linux-x86/3.9.2/bin/执行python -m pip install --user --upgrade pip==22.3.1(22.3.1是要升级的版本号)

4.安装依赖工具

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

如果安装了如上的依赖工具不行,执行以下语句安装最新的依赖工具

unix_time=`date '+%s'`;for one_tools in `curl -s -k https://gitee.com/landwind/openharmony_oneclick_env_init/raw/master/apt_install.list`;do echo "apt-get install -y ${one_tools}">>/tmp/openharmony_deps_${unix_time}.sh; done;sudo apt-get update;sudo bash -x /tmp/openharmony_deps_${unix_time}.sh

依赖工具列表 https://gitee.com/landwind/openharmony_oneclick_env_init/raw/master/apt_install.list

5.将python 3.8设置为默认python版本。

  • 查看python 3.8的位置:
which python3.8

将python和python3切换为python3.8

sudo update-alternatives --install /usr/bin/python python {python3.8 路径} 1    
sudo update-alternatives --install /usr/bin/python3 python3 {python3.8 路径} 1  

6.最后测试一下OpenHarmony三方库编译环境

在源码根目录下执行编译命令

./build.sh --product-name rk3568 --ccache --build-target=要编译的部件名 --target-cpu arm64
#其中:--product-name rk3568 指定产品名为rk3568 
#其中:--ccache              编译使用ccache
#其中:--target-cpu arm64    编译构建64位系统

在源码目录下执行编译zlib命令,生成libzlib.z.so

./build.sh --product-name rk3568 --ccache --build-target=zlib

编译生成了libzlib.z.so,编译环境没问题。

OpenHarmony环境重置

  • 安装依赖包: unix_time=date ‘+%s’;for one_tools in curl -s -k https://gitee.com/landwind/openharmony_oneclick_env_init/raw/master/apt_install.list;do echo "apt-get install -y ${one_tools}">>/tmp/openharmony_deps_${unix_time}.sh; done
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值