Ubuntu如何搭建OpenHarmony_6.1.0.28的lycium_plusplus及鸿蒙 PC 环境设计的 C/C++ 编译框架
lycium_plusplus是专为OpenHarmony及鸿蒙PC设计的C/C++编译框架,支持一键构建依赖关系树和多版本库编译。它简化了三方库的编译流程,可生成HNP格式安装包,支持Linux/Windows/macOS交叉编译及鸿蒙PC本机编译(需6.0.0.115+版本)。实验在Ubuntu 22.04环境下完成,通过安装必备工具链、下载OHOS SDK并设置环境变量后,即可使用该框架编译
1. lycium_plusplus是什么?
lycium_plusplus 是一个专为 OpenHarmony 及鸿蒙 PC 环境设计的 C/C++ 编译框架,主要用于简化三方库的编译、构建和打包流程。它基于 lycium 编译框架进行增强,支持一键构建依赖关系树,并提供对多版本库的编译能力,尤其适用于在鸿蒙 PC 系统上移植和编译命令行工具或库文件(如 tree、x264 等)。
1.1 主要特性:
- 一键构建依赖:自动解析并构建项目依赖关系,无需手动配置复杂编译流程。
- 支持外部仓适配:通过
outerrepo/module.json配置外部代码仓库(如 Git 仓库),实现独立发布和动态集成。 - 生成 HNP 包:支持生成
.hnp格式的鸿蒙系统打包文件,便于作为组件与应用一同安装。 - 跨平台编译:支持在 Linux(如 Ubuntu)、Windows、macOS 上进行交叉编译,生成适用于鸿蒙 PC(ARM64 架构)的可执行程序。
- 本机编译支持:鸿蒙 PC 系统升级至 6.0.0.115 或以上版本后,可直接在设备上使用
build_local.sh脚本进行本机编译,无需交叉编译环境。
1.2 使用方式:
-
- 获取源码
通过 Git 克隆项目仓库:
git clone https://gitcode.com/OpenHarmonyPCDeveloper/lycium_plusplus.git - 获取源码
-
- 环境准备
- 交叉编译环境(在 Linux/macOS/Windows 上):需安装基础工具链(如
clang、cmake、ninja)。 - 鸿蒙 PC 本机编译:需在鸿蒙 PC 上安装以下应用:
- DevBox:提供编译工具链(clang、cmake、make、hdc、hnpcli 等)。
- GitNext:用于代码管理。
- Python 安装器:提供 Python 3.12 运行环境。
- BiShengJDK:提供 Java 虚拟机环境(部分脚本依赖)。
-
- 构建示例(以 tree 命令为例)
- 交叉编译(在 Linux 上):
cd lycium_plusplus/lycium ./build.sh tree - 本机编译(在鸿蒙 PC 上):
cd lycium_plusplus/lycium ./build_local.sh tree
-
- 结果验证
构建成功后,可在以下路径找到产物:
- 可执行程序:
usr/tree/arm64-v8a/bin/tree - HNP 打包文件:
output/arm64-v8a/tree.hnp
- 结果验证
1.3 适用人群:
- 普通开发者:推荐使用
lycium_plusplus,其标准化模板和依赖管理大幅降低移植门槛。 - 资深开发者:若需高度定制化编译流程,可选择“自制轮子”方式,直接调用 OHOS SDK 工具链。
注意事项
build.sh(旧框架)已停止维护,建议统一使用lycium_plusplus。- 在鸿蒙 PC 上编译时,若遇到
detected dubious ownership in repository错误,可执行:git config --global --add safe.directory /path/to/your/repository - 若出现
No such file or directory错误,可手动在lycium/目录下创建tmp文件夹。
该项目目前主要由社区驱动,官方文档和工具链持续更新中,建议关注其 GitCode 仓库 获取最新动态。
2. 实验过程:
本人使用的是vagrant ubuntu 22.04的镜像包进行的测试:

先可以使用apt update命令来完成包的更新:
2.2 安装必备相关的包:
安装一些必备的包,用于命令行的适配:
sudo apt install -y curl git vim gcc g++ make pkg-config autoconf automake patch libtool autopoint gperf tcl8.6-dev wget unzip gccgo-go flex bison premake4 python3 python3-pip ninja-build meson sox gfortran subversion build-essential module-assistant gcc-multilib g++-multilib libltdl7-dev cabextract libboost-all-dev libxml2-utils gettext libxml-libxml-perl libxml2 libxml2-dev libxml-parser-perl texinfo xmlto po4a libtool-bin yasm nasm xutils-dev libx11-dev xtrans-dev cmake

E: dpkg was interrupted, you must manually run 'sudo dpkg --configure -a' to correct the problem.
当遇到错误提示 E: dpkg was interrupted, you must manually run ‘sudo dpkg --configure -a’ to correct the problem 时,说明系统中某些软件包的安装或配置过程被中断,导致 dpkg 状态不一致。为了解决这个问题,你可以按照以下步骤操作:
首先,执行以下命令来修复未完成的软件包配置:
sudo dpkg --configure -a

接下来,再次安装就可以了:
这里可以稍微注意一下在后面安装的时候,发现没有cmake命令,所以,上面就直接把命令补充完整即可。
2.2 下载ohos-sdk(版本:OpenHarmony_6.1.0.28):
打开每日构建页openHarmony CI页面,找到ohos-sdk-full这个流水线,点击这个名称进入详情页面。
进入详情,可以在一个构建成功的流水线,在“下载链接”查看详情,这里有一个全量包,可以点击“载下链接”即可,这里可以直接复制一下这个链接:

直接使用wget将这个包下载下来,我们可以看到这个包的大小有2.33G:
wget https://cidownload.openharmony.cn/version/Daily_Version/OpenHarmony_6.1.0.28/20260120_120146/version-Daily_Version-OpenHarmony_6.1.0.28-20260120_120146-ohos-sdk-full.tar.gz

使用tar来解压这个gz压缩包:
tar xf version-Daily_Version-OpenHarmony_6.1.0.28-20260120_120146-ohos-sdk-full.tar.gz

接下来,我们进入linux目录中,我们解压native模块:
unzip -q native-linux-x64-6.1.0.28-Beta1.zip

同时,再次解压toolchains模块:
unzip -q toolchains-linux-x64-6.0.0.46-Beta1.zip

2.3 设置环境变量:
这里我们设置一下全局的环境变量:
export OHOS_SDK=~/harmonypc/linux
echo $OHOS_SDK

环境变量设置完成后,查看一下2个核心工具:clang和binary-sign-tool是否存在:

3. 配置lycium_plusplus:
基于openharmony cpp 编译框架lycium的增强:
-
- 针对目标产物,构建依赖关系树,一键构建
-
- 对于三方库的HPKBUILD,提供多版本构建能力,代码仓脱离本仓独立发布,可通过三方件源码仓获取编译
-
- 提供hnp构建产物的生成,支持HarmonyOS使用
-
- 提供在华为电脑上直接编译的支持
-
- 产物针对开源声明进行聚合,生成html文件

3.1 下载lycium_plusplus到本地:
git clone https://gitcode.com/OpenHarmonyPCDeveloper/lycium_plusplus.git

3.2 外部适配仓参与构建:
本项目新增目录external_deps用于临时存放外部仓,外部仓信息存放在external_deps/module.json中
该文件中包含的关键要素如下:
"module" : [
{
"name" : "tree",
"branch" : "ohos_2.2.1",
"version" : "2.2.1",
"type" : "git",
"url" : "https://gitcode.com/OpenHarmonyPCDeveloper/ohos_tree.git"
}
]
- name为模块名称,如上述示例中的tree
- url为适配仓代码地址,以及适配仓所对应的原生代码tree的版本信息version
- branch为适配仓为该对应关系中适配仓的对应分支信息
- type为适配仓托管类型的下载方式,如上述中,ohos_tree适配仓的下载方式为git(其他获取源码方式待扩展)

适配完成后,可以按照原生编译的方式执行,仍以tree举例:
cd lyium
./build.sh tree

这里可以看到ALL JOBS NODE!!就表示可以完成了。

3.3 产物获取:
获取编译产物
可在lycium/usr/tree/下获取对应架构下的二进制产物
可在lycium/output//下获取对应架构下的归档产物

总结:
lycium_plusplus是专为OpenHarmony及鸿蒙PC设计的C/C++编译框架,支持一键构建依赖关系树和多版本库编译。它简化了三方库的编译流程,可生成HNP格式安装包,支持Linux/Windows/macOS交叉编译及鸿蒙PC本机编译(需6.0.0.115+版本)。实验在Ubuntu 22.04环境下完成,通过安装必备工具链、下载OHOS SDK并设置环境变量后,即可使用该框架编译命令行工具。项目适合普通开发者快速移植库文件,资深开发者也可基于OHOS SDK进行深度定制。
更多推荐





所有评论(0)