资讯动态

OpenHarmony-标准设备系统代码操作梳理--更新内容

发布时间:2026/10/9 12:11:26 来源:尧图企业网站定制
旧版OpenHarmony-标准设备系统代码操作梳理-CSDN博客更新内容如下一、WSL2安装安装 Ubuntu 22.04目前基本都用的22.04版本了20.04版本太老在编译open Harmony的时候会有很多库不适配导致编译不成功以管理员身份打开 PowerShell先看看有哪些版本可以装wsl --list --online确认列表里有Ubuntu-22.04后直接用以下指令直接安装wsl --install -d Ubuntu-22.04这个命令会自动下载并安装指定版本的 Ubuntu。安装完成后会提示你创建一个新的用户名和密码按自己习惯设置就行比如用户名是自己名字的拼音密码为123方便使用。迁移到非系统盘上述指令默认装C盘最好迁移到其他盘如D盘的。在 wsl --install -d Ubuntu-22.04 执行安装完毕后在D盘创建文件加wslD:\wsl然后在 powershell 上执行如下步骤1. 关闭 WSLwsl --shutdown2. 导出文件wsl --export Ubuntu-22.04 D:\wsl\ubuntu22-backup.tar3. 注销 C 盘的Ubuntuwsl --unregister Ubuntu-22.044. 导入到 D 盘wsl --import Ubuntu-22.04 D:\wsl\Ubuntu-22.04 D:\wsl\ubuntu22-backup.tar --version 25.进入Ubuntu系统wsl -d Ubuntu-22.04切换软件源为国内源阿里源1. 备份原来的软件源文件sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak2. 用tee直接覆盖写入阿里源sudo tee /etc/apt/sources.list /dev/null EOF deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse EOF3. 更新配置sudo apt update输出里出现mirrors.aliyun.com就说明成功。4. 验证是否换源成功grep aliyun /etc/apt/sources.list有输出就对了。调整 WSL 内存配置可选在后面的编译部分可能会出现ret_code: -9内存不足错误即单个 clang 进程编译某个大文件时瞬时内存需求就超过了 WSL 的可用内存上限OOM Killer内存不足杀手 把Ninja 进程强制杀死了。此时需要配置更高的内存给wsl步骤如下在 Windows 用户目录C:\Users\你的用户名\创建.wslconfig文件然后写入[wsl2] memory12GB swap32GB processors8执行wsl --shutdown关闭wsl后再重新进入用free -h验证若是输出如下则代表配置生效。二、安装必要的库和工具集安装基础编译依赖使用如下apt-get命令安装后续操作所需的库和工具sudo apt install -y binutils binutils-dev 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-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-tools pcmciautils quota ppp \ libtinfo-dev libtinfo5 libncurses5-dev libncursesw5 libstdc6 \ gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev \ libxrandr-dev libxi-dev libtool autoconf automake cmake ninja-build gettext注上述命令对 22.04 做了适配已移除官方文档命令中 22.04 中不存在的libc6-dev-amd64和与gcc-multilib冲突的gcc-arm-linux-gnueabi。安装 Node.jsOpenHarmony 6.0 的构建系统要求 Node.js 18 及以上。bashcurl -fsSL https://deb.nodesource.com/setup_18.x | sudo -E bash - sudo apt install -y nodejs node --version验证显示v18.x。​安装 repo 码云工具mkdir ~/bin curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo ~/bin/repo chmod ax ~/bin/repo echo export PATH~/bin:$PATH ~/.bashrc source ~/.bashrc输入指令repo --version能输出版本信息就代表安装成功。给 repo 配置环境变量让它不去Google下载代码否则后续获取源码步骤可能会因为网络问题失败除非你的网络能访问Googleecho export REPO_URLhttps://mirrors.tuna.tsinghua.edu.cn/git/git-repo ~/.bashrc source ~/.bashrc配置Python3Ubuntu-22.04 自带 Python 3.10现在设置让 python 命令指向 python3。不然要执行python只能用python3命令后续容易出错。比如python --version会报错得python3 --version才对用Ubuntu 提供的包解决这个问题sudo apt install -y python-is-python3​用python --version验证没有报错显示Python 3.10.x则代表成功。三、获取源码配置 Git 与 SSH执行下列命令配置 Git 用户信息git config --global user.name 你的用户名 git config --global user.email 你的邮箱 git config --global credential.helper store执行ssh-keygen命令并回车三次生成 SSH 密钥再将 cat 命令输出的公钥复制到 GitCode 中设置 SSH 公钥。详细操作可见SSH 公钥管理 | AtomGit 帮助文档ssh-keygen -t ed25519 -C GitCode SSH Key cat ~/.ssh/id_ed25519.pub配置完成后执行以下命令验证连接ssh -T gitgitcode.com初次使用这条指令需要输入yes确认看到Welcome to GitCode即代表配置成功。代码获取方式发布分支代码相对比较稳定开发者可基于发布分支代码进行商用功能开发。Master主干为开发分支开发者可通过Master主干获取最新特性。OpenHarmony发布分支代码获取OpenHarmony各个版本发布分支的源码获取方式请参考Release-Notes。OpenHarmony主干代码获取获取代码时尽可能在根目录下新建路径中获取。cd ~ mkdir ohos_master #在根目录下新建ohos_master路径 cd ohos_master #进入ohos_master路径拉取代码通过repo ssh下载代码需注册公钥请参考码云帮助中心。repo init -u gitgitcode.com:openharmony/manifest.git -b master --no-repo-verify repo sync -c repo forall -c git lfs pull其中repo init -u执行后需要回答颜色提示输入 y 然后回车就行。repo sync -c和repo forall -c git lfs pull耗时较久与网络情况相关请耐心等待。执行prebuilts获取完代码后在源码根目录下执行prebuilts脚本安装编译器及二进制工具。cd ~/ohos-master # 进入源代码根路径 bash build/prebuilts_download.sh版本编译进入源码根目录执行全量编译./build.sh --product-name rk3568 --ccache -j4单模块编译只需要将target后的名字改为对应模块名称即可如图形为graphic_2d不用走全量编译效率更高一点。./build.sh --product-name rk3568 --ccache --build-target graphic_2d --no-prebuilt-sdk --fast-rebuild ./build.sh --product-name rk3568 --ccache --build-target RSRenderServiceBasePipelineTest color_manager_unit_test执行全量编译./build.sh --product-name rk3568 --ccache -j4报错以下为deepseek总结的报错ninja: error: ../../prebuilts/ohos-sdk/linux/26.0.1/native/sysroot/usr/lib/arm-linux-ohos/libbundle_ndk.z.so, needed by web/webview/libnweb_ohos_adapter.z.so, missing and no known rule to make it原因是你当前的代码版本master要求的 ohos-sdk 版本26.0.1在 prebuilts/ohos-sdk/ 下并不存在。尝试1重新执行 prebuilts 下载。社区反馈 prebuilts_download.sh 默认不带 SDK因此命令中带上参数。如下cd ~/ohos bash build/prebuilts_config.sh --download-sdk

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑