GN构建工程配置HarmonyOS编译工具链


📚往期笔录记录🔖:

🔖鸿蒙(HarmonyOS)北向开发知识点记录~
🔖鸿蒙(OpenHarmony)南向开发保姆级知识点汇总~
🔖鸿蒙应用开发与鸿蒙系统开发哪个更有前景?
🔖嵌入式开发适不适合做鸿蒙南向开发?看完这篇你就了解了~
🔖对于大前端开发来说,转鸿蒙开发究竟是福还是祸?
🔖鸿蒙岗位需求突增!移动端、PC端、IoT到底该怎么选?
🔖记录一场鸿蒙开发岗位面试经历~
🔖持续更新中……


本文将介绍如何在GN工程中配置HarmonyOS工具链,然后通过HarmonyOS工具链编译出可以在HarmonyOS环境下使用的三方库。

概述

HarmonyOS编译子系统是以GN和Ninja构建为基座,对构建和配置粒度进行部件化抽象、对内建模块进行功能增强、对业务模块进行功能扩展的系统,该系统提供以下基本功能:

  • 以部件为最小粒度拼装产品和独立编译。
  • 支持轻量、小型、标准三种系统的解决方案级版本构建,以及用于支撑应用开发者使用IDE开发的SDK开发套件的构建。
  • 支持芯片解决方案厂商的灵活定制和独立编译。

Ninja: 是一个专注于快速编译的小型构建系统。

GN: Generate Ninja的缩写,用于产生Ninja文件。

编译环境配置

  1. Linux编译环境搭建(如果已有对应版本的Linux开发环境,可跳过Linux环境搭建过程):详细指导见以下链接。

使用 WSL 在 Windows 上安装 Linux:https://learn.microsoft.com/zh-cn/windows/wsl/install

Ubuntu分发版本获取及安装说明:https://learn.microsoft.com/zh-cn/windows/wsl/install-manual

编译环境目前主要支持Ubuntu18.04和Ubuntu20.04(Ubuntu22.04暂不支持)。

  1. HarmonyOS SDK镜像下载:

从DevEco Studio的SDK Manager中获取SDK。

  1. 安装构建工具depot_tools并添加到环境变量。

任意位置创建工作目录depot_tools,cd到自己创建的目录,拉取工具(需要网络环境):

mkdir depot_tools
cd depot_tools
git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

将depot_tools的路径加到环境变量中:

编译.bashrc文件将depot_tools路径信息加到最后一行。

vi ~/.bashrc                                    

在.bashrc文件的最后添加下面一行代码。

export PATH="$PATH:/xxx/depot_tools"

此处需配置绝对路径信息,例如这里创建的本地路径是/mnt/d/my_code/depot_tools,故此处配置如上图。

刷新环境变量使其生效:

source ~/.bashrc 
  1. 使用GN需要Python环境,安装Python环境。
sudo apt update
sudo apt install python

直接输入指令sudo apt install python可能会安装失败,需要先输入sudo apt update更新一下可用包的最新列表。

判断python是否安装成功:

输入python显示python版本即可。

GN构建工程适配流程

首先,需要添加HarmonyOS平台的宏定义;然后配置好HarmonyOS平台的工具链信息(包括clang工具链,sysroot以及clang版本);接着需要在toolchain路径下配置各个架构的ohos_clang_toolchain;然后扩充gcc_toolchain模版功能,配置HarmonyOS用于启动引导程序的.o文件信息。剩下的就是需要设置一些HarmonyOS的编译参数(主要是基础的编译选项、宏定义等);然后在BUILD.gn中不同架构平台的分支处,添加对应的HarmonyOS平台的分支,其中未适配HarmonyOS的三方库可以先走Linux分支的编译配置。更加详细的信息可参考下节的适配案例。

webRTC适配案例

本文将通过webRTC的GN构建工程案例来对上一章节的流程进行实操讲解。WebRTC (Web Real-Time Communications) 是一项实时通讯技术,它允许网络应用或者站点,在不借助中间媒介的情况下,建立浏览器之间点对点(Peer-to-Peer)的连接,实现视频流和(或)音频流或者其他任意数据的传输。下面我们来了解下如何通过GN构建工程将webRTC适配到HarmonyOS系统上。

适配流程

示例代码中D:\my_cod

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值