当前位置: 首页 > news >正文

ubuntu22.04环境鸿蒙全仓代码编译配置

文章目录

    • 1. 前言
    • 2. `wsl`内存和`swap` `虚拟内存`的配置
    • 3. 安装核心依赖
    • 4. 鸿蒙全仓编译

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.shmkdir-p~/.bin/repogitclone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo ~/.bin/repochmod+x ~/.bin/repo/repoecho'export PATH=~/.bin/repo:$PATH'>>/root/.bashrcsource~/.bashrc

验证:

fbb@DESKTOP-8IRJTCN:~/codes/arkcompiler_ets_frontend$ repo--version<repo not installed>repo launcher version2.8(from /usr/bin/repo)git2.34.1 Python3.10.12(main, Mar32026,11:56:32)[GCC11.4.0]OS Linux6.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=24GBswap=4GBprocessors=18guiApplications=false

提醒:windows重启生效。wslswap(虚拟内存)够用即可,多了,会造成windsow非常卡顿,影响工作。memory的大小与-j参数有关。-j参数越大,memory越大,为防止因内存导致编译失败,需要合理选择核数。

3. 安装核心依赖

sudoapt-getinstall-y\binutils binutils-devgitgit-lfs gnupg flex bison gperf\build-essentialzipcurlzlib1g-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 xsltprocunzipm4bc\gnutls-bin python3.10 python3-pip ruby genext2fs\device-tree-compilermakelibffi-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\mtoolsdefault-jre default-jdk libncurses5 apt-utils\wgetsconstarrsyncgit-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用户信息:

gitconfig--globaluser.email"XXX@YYY.com"gitconfig--globaluser.name"XXX"

搭建步骤:

repo init-uhttps://gitcode.com/openharmony/manifest.git-bmaster --no-repo-verify# 初始化repo仓库reposync-c-j12# 同步鸿蒙全仓代码。每个仓库没有分支概念。repo forall-c'git lfs pull'# 拉取 Git LFS大文件存储管理的文件bashbuild/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) 编译用内核数量。建议使用物理核数的一半。该参数越大,所耗内存越大,编译因内存不够失败的风险越大。不用该参数默认使用所有物理内核去编译,风险最大。

http://www.jsqmd.com/news/542210/

相关文章:

  • Gemma-3 Pixel Studio镜像免配置:开箱即用的12B多模态推理工作站
  • Vite项目实战:解决monaco-editor中文汉化失败的3种方法(附最新语言包下载)
  • 从输入网址到访问服务器响应返回客户端
  • 155农村事务管理与交流平台系统-springboot+vue+微信小程序
  • 功能齐全的屏幕截图C++实现详解(附源码)
  • 智能周报生成器:OpenClaw+百川2-13B自动汇总工作成果
  • 156湖南交通工程学院学生就业信息系统-springboot+vue
  • 告别理论!用Cobalt Strike实战红日靶场:从蚁剑上线到SMB Beacon横向移动的避坑指南
  • 什么时候会触发FullGC
  • 百川2-13B模型量化对比:4bits与8bits版本在OpenClaw任务中的差异
  • AI 辅助 AUTOSAR 测试
  • python 第六课 (字典 函数 None 作用域 函数嵌套 函数递归调用 重点)
  • 3步掌握高效视频处理:ffmpegGUI让复杂命令可视化
  • 高效掌握BBDown:全场景哔哩哔哩视频下载工具使用指南
  • AutoDock Vina分子对接中过渡金属原子类型处理的5种突破性策略:高级技术架构指南
  • Switch-Toolbox:如何破解任天堂游戏文件编辑的三大技术难题?
  • 别再只调API了!用Java手搓一个能“思考”和“行动”的AI Agent(附完整代码)
  • 同步异步通信:UART详解
  • 3个步骤极速部署AdGuard广告拦截扩展:跨浏览器零门槛配置指南
  • 解锁compressorjs的图像优化能力:打造高性能Web应用的前端图片处理方案
  • E820 内存映射表深度解析
  • Elasticsearch 7.x 安全加固实战:从裸奔到密码保护的完整配置指南
  • Hearthstone-Script终极指南:如何免费自动化你的炉石传说游戏体验
  • 2026年质量好的企业oa系统/oa办公管理平台热门公司推荐 - 品牌宣传支持者
  • LFM2.5-1.2B-Thinking-GGUF参数详解:max_tokens/temperature/top_p调优实战
  • 从Fastjson到OGNL:JSONPath与表达式语言的性能对比与选型建议
  • 包装器简介
  • X-TRACK二次开发终极指南:如何基于开源框架快速扩展新功能
  • OpenClaw定时任务:百川2-13B实现每日早报自动生成与发送
  • vLLM-v0.17.1入门必看:WebShell交互式调试LLM推理全流程