ubuntu22.04环境鸿蒙全仓代码编译配置
·
1. 前言
作为鸿蒙开发人员搭建开发环境是再平常不过的了。使用docker镜像搭建环境,请参见我前面的文章wsl2平台鸿蒙全仓docker编译环境快速创建方法。
鸿蒙docker镜像创建于几年前,使用的是ubuntu18.04发布版本,有点旧。不建议在镜像内升级ubuntu版本。
现在我们就在ubuntu22.04或以上版本直接配置鸿蒙全仓库代码编译环境。 wsl的创建这里就不赘述了。可以参考我的前一篇文章或网络搜索。
本文在windows11系统24核CPU32G内存、wsl2环境适配。需要安装repo、python3。wsl安装的磁盘分区需要有300G的空闲空间。
apt源设置为国内源,自行网络搜索。可以参照–Ubuntu 22.04 APT源修改:国内镜像源配置指南
pip源设置为阿里等国内源,自行网络搜索。可以参照–Ubuntu系统更换国内软件源全攻略:从配置到优化。
ubuntu22.04的用户建议为非root用户。
repo安装:
# install_repo.sh
mkdir -p ~/.bin/repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo ~/.bin/repo
chmod +x ~/.bin/repo/repo
echo 'export PATH=~/.bin/repo:$PATH' >> /root/.bashrc
source ~/.bashrc
验证:
fbb@DESKTOP-8IRJTCN:~/codes/arkcompiler_ets_frontend$ repo --version
<repo not installed>
repo launcher version 2.8
(from /usr/bin/repo)
git 2.34.1
Python 3.10.12 (main, Mar 3 2026, 11:56:32) [GCC 11.4.0]
OS Linux 6.6.87.2-microsoft-standard-WSL2 (#1 SMP PREEMPT_DYNAMIC Thu Jun 5 18:30:46 UTC 2025)
CPU x86_64 (x86_64)
2. wsl内存和swap 虚拟内存的配置
修改配置文件(C:\Users\xxx\.wslconfig)文件内容(没有就创建)。
.wslconfig文件内容:
[wsl2]
memory=24GB
swap=4GB
processors=18
guiApplications=false
提醒: windows重启生效。wsl的swap(虚拟内存)够用即可,多了,会造成windsow非常卡顿,影响工作。memory的大小与-j参数有关。-j参数越大,memory越大,为防止因内存导致编译失败,需要合理选择核数。
3. 安装核心依赖
sudo apt-get install -y \
binutils binutils-dev git git-lfs gnupg flex bison gperf \
build-essential zip curl zlib1g-dev \
gcc-multilib g++-multilib gcc-arm-linux-gnueabi \
libc6-dev-i386 libc6-dev-amd64 lib32ncurses5-dev \
x11proto-core-dev libx11-dev lib32z1-dev ccache \
libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc \
gnutls-bin python3.10 python3-pip ruby genext2fs \
device-tree-compiler make libffi-dev e2fsprogs \
pkg-config perl openssl libssl-dev libelf-dev \
libdwarf-dev u-boot-tools mtd-utils cpio doxygen \
liblz4-tool openjdk-8-jre gcc g++ texinfo dosfstools \
mtools default-jre default-jdk libncurses5 apt-utils \
wget scons tar rsync git-core \
libxml2-dev lib32z-dev grsync xxd libglib2.0-dev \
libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs \
squashfs libxcursor-dev libxrandr-dev libxinerama-dev
4. 鸿蒙全仓编译
配置git用户信息:
git config --global user.email "XXX@YYY.com"
git config --global user.name "XXX"
搭建步骤:
repo init -u https://gitcode.com/openharmony/manifest.git -b master --no-repo-verify # 初始化repo仓库
repo sync -c -j12 # 同步鸿蒙全仓代码。每个仓库没有分支概念。
repo forall -c 'git lfs pull' # 拉取 Git LFS大文件存储管理的文件
bash build/prebuilts_download.sh # 编译器及二进制工具
编译指令:
./build.sh --product-name ohos-sdk -j12 # sdk编译.输出目录:out/sdk/packages/ohos-sdk
./build.sh --product-name rk3568 --ccache -j12 # 32位全编译镜像,适用于rk3568开发板。ccache 为本地缓存目录。镜像输出目录:out/rk3568/packages/phone/images/
单独快速编译指定模块(arkui):
./build.sh --product-name rk3568 --build-target ace_engine # 不用加"-j"参数。第二次编译时可以启用"--fast-rebuild"参数,加快二次编译速度。
./build.sh --product-name rk3568 --build-target ace_engine_test ace_engine # 测试用例编译
编译说明:
-j(jobs) 编译用内核数量。建议使用物理核数的一半。该参数越大,所耗内存越大,编译因内存不够失败的风险越大。不用该参数默认使用所有物理内核去编译,风险最大。
更多推荐



所有评论(0)