查看: 121|回复: 8

OpenHarmony编译环境搭建 (兼容至4.0-Master和主干分支)

[复制链接]

1

主题

6

回帖

17

积分

新手上路

积分
17
发表于 2025-4-9 08:50:13 | 显示全部楼层 |阅读模式
预备工作
1. 安装虚拟机工具VMware或者VirtualBox。
2. 新建虚拟机,内存16GB及以上,硬盘100GB及以上。
3. 安装Ubuntu,推荐使用20.04版本。用户名不能包含中文。
4. 启动并进入Ubuntu虚拟机,以下步骤将在Ubuntu虚拟机中进行操作。

一、将Shell环境修改为bash
  1. sudo dpkg-reconfigure dash
复制代码
选择“No”。


二、替换Ubuntu软件源
在“https://mirrors.ustc.edu.cn/repogen/”下载对应版本最新的源。


在下载好的文件(sources.list)所在的位置开启一个终端窗口,执行下列命令。

备份原始文件:
  1. sudo cp /etc/apt/sources.list /etc/apt/source.list.bak
复制代码
替换源:
  1. sudo mv -f sources.list /etc/apt/
复制代码
更新软件包索引:
  1. sudo apt update
复制代码
三、安装必要的库和工具
需要分两步进行安装。注意,这里比较重要,官网文档用一步进行安装,会出现问题,导致安装不完整,从而导致后期编译出现“3000”错误。
  1. sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev   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.8 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 python3.8-distutils 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 libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev libxrandr-dev libxi-dev
复制代码
  1. sudo apt-get install gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi
复制代码
四、配置Python
设置默认Python解释器,python和python3软链接为python3.8:
  1. sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.8 1python --version
复制代码
安装python包管理工具(pip3):
  1. sudo apt install python3-pip
复制代码
配置pip软件包更新源:
  1. mkdir ~/.pippip3 config set global.index-url https://mirrors.huaweicloud.com/repository/pypi/simplepip3 config set global.trusted-host mirrors.huaweicloud.compip3 config set global.timeout 120
复制代码
五、安装Samba服务
用于在开发环境中使用VS Code编写代码。执行下列命令安装samba并打开配置文件:
  1. sudo apt install sambasudo gedit /etc/samba/smb.conf
复制代码
在配置文件末尾添加以下内容:
  1. [home]comment = User Homespath = /homeguest ok = nowritable = yesbrowsable = yescreate mask = 0755directory mask = 0755
复制代码
建立用户并设置密码(请将下面的用户名换成您自己的)
  1. sudo smbpasswd -a dragon
复制代码
重启samba:
  1. sudo service smbd restart
复制代码
六、获取源代码的必要工具和配置
安装git-lfs,会自动安装git:
  1. sudo apt install git-lfs
复制代码
安装repo和requests:
  1. wget https://gitee.com/oschina/repo/raw/fork_flow/repo-py3sudo mv repo-py3 /usr/local/bin/reposudo chmod a+x /usr/local/bin/repopip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
复制代码
配置git(请将下面的邮箱和用户名换成您自己的):
  1. git config --global user.email "dragon@hbu.cn"git config --global user.name "dragon"git config --global credential.helper storegit config --global --add safe.directory "*"
复制代码
七、拉取源码
以4.0为例(可以拉取branch或tag,这里使用branch):
  1. mkdir -p ~/openharmony/4.0cd ~/openharmony/4.0repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.0-Release --no-repo-verifyrepo sync -crepo forall -c 'git lfs pull'
复制代码
在源码根目录下执行prebuilts脚本,安装编译器及二进制工具:
  1. bash build/prebuilts_download.sh
复制代码
八、安装编译工具
在源码根目录运行如下命令安装hb并更新至最新版本:
  1. python3 -m pip install --user build/hb
复制代码
设置环境变量:
  1. echo 'export PATH=~/.local/bin:$PATH' >> ~/.bashrcsource ~/.bashrc
复制代码
九、编译
两种方式,使用hb或者build.sh。
1. 使用hb。在源码根目录运行如下命令(选择要编译的产品并进行编译):
  1. hb sethb build
复制代码
2. 使用build.sh。命令格式为:
  1. ./build.sh --product-name {product_name} --ccache
复制代码
例如,在源码根目录运行如下命令:
  1. ./build.sh --product-name rk3568 --ccache
复制代码
耐心等待,对于标准系统来说,完整编译过程会持续2-3小时。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

3

回帖

10

积分

新手上路

积分
10
发表于 2025-4-9 08:51:03 | 显示全部楼层
<div class="vditor-reset">按照上述文章步骤下拉和编译,4.0 release和master编译也会报错,不知该如何处理,部分log如下:[OHOS ERROR] ld.lld: error: undefined symbol: __aarch64_cas4_acq_rel...[OHOS ERROR] ld.lld: error: .btf.vmlinux.bin.o: unknown file type...[OHOS ERROR] exceptions.ohos_exception.OHOSException: ninja phase failed[OHOS ERROR][OHOS ERROR] Code:      4000

0

主题

3

回帖

10

积分

新手上路

积分
10
发表于 2025-4-9 08:51:39 | 显示全部楼层
回复 martinhu: 会不会是源码有点问题呢,之前3.2的出现报错重新拉取源码搭好环境编译就没问题了,但是4.0的我尝试好多次了一样的错误,还是说还有什么地方还差着什么没有配置吗。。。
[/td][/tr][/table][/td][/tr][tr][td]榜单了解详情')">有用 榜单了解详情')">无用 回复举报

[/td][/tr][/table]

马迪
发表于 2023-11-17 09:54 IP属地:  江苏省扬州市


建议是从[这里]([https://gitee.com/openharmony/do ... ony-v4.0-release.md](https://gitee.com/openharmony/do ... ony-v4.0-release.md))拿代码

分支上的都随时有人提交,不一定稳定





榜单了解详情')">有用 榜单了解详情')">无用 回复举报





dragon
发表于 2023-11-18 09:16 IP属地:  河北省唐山市


回复 lucky1: 虚拟机内存分配了多少?



榜单了解详情')">有用 榜单了解详情')">无用 回复举报





martinhu
发表于 2023-11-20 08:31 IP属地: - 中国湖北省襄阳市 中国电信IDC


回复 lucky1: 看到好多人编译4.0 代码遇到4000报错,源码可能有跟编译环境相关的bug



榜单了解详情')">有用 榜单了解详情')">无用 回复举报





lihonggang
发表于 2024-5-16 17:51 IP属地:  山东省济南市


回复 马迪: 你这个页面已经打不开了



榜单了解详情')">有用 榜单了解详情')">无用 回复举报



【5 条回复】 查看全部点评

dragon
虚拟机内存分配了多少? 发表于 2023-11-18 09:15



[/td][/tr][tr][td][/td][/tr][tr][/tr][tr][td]                                            回复举报
                    

[/td][/tr][tr][td][/td][/tr][/table]                                                <div class="ssfv" key="2" >                    <div id="post_4641" style="position: relative" class="a0a viewbox otherfloor cl" >            
<div class="viewinfo">[table][tr][td]
                 alexsuo  
板凳                                    发表于 2024-1-21 09:23:30


<div class="pct"><div class="pcb"><div class="t_fsz">[table][tr][td]用同样的办法编译dayu210 却会失败,博主有没有经验可以分享?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

1

回帖

14

积分

新手上路

积分
14
发表于 2025-4-9 08:51:46 | 显示全部楼层
搭建环境有困难的同学,可以使用我的在线平台试试,目前已经正式发布
使用方法参考我之前发的文章或查看在线帮助视频

https://lengqinjie.xyz/lab/index

0

主题

1

回帖

10

积分

新手上路

积分
10
发表于 2025-4-9 08:51:53 | 显示全部楼层
回复 冷钦街: 登陆在线平台后提示我更换浏览器是什么问题?我用edge和chrome都试了,还是同样的问题
[/td][/tr][/table][/td][/tr][tr][td]榜单了解详情')">有用 榜单了解详情')">无用 回复举报

[/td][/tr][/table]

冷钦街
发表于 2024-2-15 20:54 IP属地: - 中国四川省 中国电信IDC


回复 faceoh: 可能是浏览器不支持,更大的可能是网络不流畅,更换一下网络环境,可能就好了。



榜单了解详情')">有用 榜单了解详情')">无用 回复举报





2964213324
发表于 2024-6-12 21:36 IP属地:  福建省泉州市


回复 冷钦街: 哥不行耶



榜单了解详情')">有用 榜单了解详情')">无用 回复举报



【3 条回复】

[/td][/tr][tr][td][/td][/tr][tr][/tr][tr][td]                                            回复举报
                    

[/td][/tr][tr][td][/td][/tr][/table]                                                <div class="ssfv" key="4" >                    <div id="post_5073" style="position: relative" class="a0a viewbox otherfloor cl" >            
<div class="viewinfo">[table][tr][td]
                 xyshi  
5#                                    发表于 2024-2-19 14:29:01


<div class="pct"><div class="pcb"><div class="t_fsz">[table][tr][td]https://www.vmware.com/products/ ... pro-evaluation.html

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

3

回帖

10

积分

新手上路

积分
10
发表于 2025-4-9 08:52:38 | 显示全部楼层
博主写的很全

2

主题

4

回帖

18

积分

新手上路

积分
18
发表于 2025-4-9 08:52:48 | 显示全部楼层
请问为什么我是用hb build只读取配置而不编译呢
[OHOS INFO] The run time for _prebuild_and_preload is 0.01 s

[OHOS INFO] Checking all build args...

[OHOS INFO] subsytem config scan completed

1

主题

2

回帖

14

积分

新手上路

积分
14
发表于 2025-4-9 08:53:41 | 显示全部楼层
回复 pengbiao: 相同问题,请问您解决了吗?或者有什么思路吗?

[/td][/tr][/table][/td][/tr][tr][td]榜单了解详情')">有用 榜单了解详情')">无用 回复举报

[/td][/tr][/table]【1 条回复】

[/td][/tr][tr][td][/td][/tr][tr][/tr][tr][td]                                            回复举报
                    

[/td][/tr][tr][td][/td][/tr][/table]                                                <div class="ssfv" key="7" >                    <div id="post_8010" style="position: relative" class="a0a viewbox otherfloor cl" >           
<div class="viewinfo">[table][tr][td]
                 haha0000  
8#                                    发表于 2024-7-29 10:47:03


<div class="pct"><div class="pcb"><div class="t_fsz">[table][tr][td]安装好环境之后,就可以在任意目录下编译程序是吗,C可以吗

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

1

主题

6

回帖

17

积分

新手上路

积分
17
楼主 发表于 2025-4-9 08:54:02 | 显示全部楼层
[47038/81827] ACTION //third_party/typescript:build_typescript_pack(//build/toolchain/ohos:ohos_clang_arm)
FAILED: obj/third_party/typescript/ohos-typescript-4.9.5-r4.tgz
/usr/bin/env ../../third_party/typescript/compile_typescript.py /home/oo/hm5.0/third_party/typescript/ /home/oo/hm5.0/out/rk3568/obj/third_party/typescript
npm error code ERR_INVALID_URL
npm error Invalid URL
npm error A complete log of this run can be found in: C:\Users\oo\AppData\Local\npm-cache\_logs\2025-04-08T01_00_47_911Z-debug-0.log

Traceback (most recent call last):
  File "../../third_party/typescript/compile_typescript.py", line 56, in <module>
    main(sys.argv[1:])
  File "../../third_party/typescript/compile_typescript.py", line 52, in main
    run_pack(source_path, dest_out_path)
  File "../../third_party/typescript/compile_typescript.py", line 46, in run_pack
    run_cmd(["npm", "pack"], dest_out_path)
  File "../../third_party/typescript/compile_typescript.py", line 30, in run_cmd
    raise Exception(stderr.decode())
Exception: npm error code ERR_INVALID_URL
npm error Invalid URL
npm error A complete log of this run can be found in: C:\Users\oo\AppData\Local\npm-cache\_logs\2025-04-08T01_00_47_911Z-debug-0.log
请问这个错误怎么办
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表