体验Windows本地编译OpenHarmony 2.0 Canary

之前用Ubuntu虚拟机来编译鸿蒙源码,听说DevEco Device Tool 2.2 Beta1可以在Windows一站式编译。马上尝尝。

1 准备工作

参考社区的文档

体验Windows本地编译OpenHarmony 2.0 Canary

参考官网文档,部署Windows环境

体验Windows本地编译OpenHarmony 2.0 Canary

上官网下载HUAWEI DevEco Device Tool 2.2 Beta1,简称DDT,关闭VScode后直接安装。

体验Windows本地编译OpenHarmony 2.0 Canary

检查各种工具的版本,我的VS code要升级一下,打开即会自动更新,更新完重启VS code即可。其他工具的更新也是参考官方文档就行,文档很全。

体验Windows本地编译OpenHarmony 2.0 Canary

官网的文档说支持Linux编译,我有点懵圈。

体验Windows本地编译OpenHarmony 2.0 Canary

看这个文档才对

体验Windows本地编译OpenHarmony 2.0 Canary

下载好源码,用bandizip解压一堆报错,换成在PowerShell用tar解压

tar -zxvf code-2.0-canary.tar.gz

这是全量代码,解压花了十多分钟。

安装MinGW勾选这2个。其实只勾最下边那个就可以了吧?

体验Windows本地编译OpenHarmony 2.0 Canary

在VScode设置工具链

体验Windows本地编译OpenHarmony 2.0 Canary

2 编译

打开源码

体验Windows本地编译OpenHarmony 2.0 Canary

编译成功。

体验Windows本地编译OpenHarmony 2.0 Canary

花了90s,想要加快速度最好用服务器编译。

3 烧录

修改applications\sample\wifi-iot\app\BUILD.gn

lite_component("app") {
    features = [
        #"startup",
        "iothardware:led_example"
    ]
}

编译Led demo

参考官网,设置端口

体验Windows本地编译OpenHarmony 2.0 Canary

烧录成功

体验Windows本地编译OpenHarmony 2.0 Canary

体验Windows本地编译OpenHarmony 2.0 Canary

4 一些报错

  • 打开工程报错
[2021/6/26下午5:46:22] 无法使用 compilerPath“riscv32-unknown-elf-gcc”解析配置。 请改用“D:\tool\Strawberry\c\bin\gcc.exe”。
无法找到“D:\HarmonyDev\code-2.0-canary\include”。
无法找到“D:\HarmonyDev\code-2.0-canary\src”。
无法找到“riscv32-unknown-elf-gcc”。

不用管

  • 编译报错
[OHOS ERROR] [151/303] COPY ../../../foundation/distributedschedule/samgr_lite/config/system_capability.json obj/foundation/distributedschedule/samgr_lite/config/system_capability.json
[OHOS ERROR] FAILED: obj/foundation/distributedschedule/samgr_lite/config/system_capability.json
[OHOS ERROR] python D:/HarmonyDev/code-2.0-canary//build/lite/copy_files.py --src_type=file --src=../../../foundation/distributedschedule/samgr_lite/config/system_capability.json --dest_dir=obj/foundation/distributedschedule/samgr_lite/config/system_capability.json
[OHOS ERROR] Fatal Python error: init_sys_streams: can‘t initialize sys standard streams
[OHOS ERROR] Traceback (most recent call last):
[OHOS ERROR]   File "C:\Users\qweto\AppData\Local\Programs\Python\Python38\lib\io.py", line 54, in <module>
[OHOS ERROR] ImportError: cannot import name ‘open_code‘ from ‘io‘ (unknown location)

解:
按照网友的方法:

1.卸载DevEco Device Tool,卸载VS Code,卸载Python

2.删除C:\Users\Administrator.deveco-device-tool\core文件夹

3.安装Python,VS Code,DevEco Device Tool 2.2 Beta1

  • 重新安装DDT报错,找不到python3

体验Windows本地编译OpenHarmony 2.0 Canary

查看日志"C:\Users\qweto\AppData\Local\deveco-device-tool-installer\deveco-install.log"

Looking for python3 
looking in registry bunch "HKEY_CURRENT_USER\Software\Python\PythonCore" 
check path D:\Program Files (x86)\Python38-32\python.exe 
check path 1 匹配。 
looking in registry bunch "HKEY_LOCAL_MACHINE\Software\Python\PythonCore" 
Python3 is not found. Aborted. 

指向一个以前安装过的python版本,卸载不干净。删掉注册表的3.8-32,不行。

体验Windows本地编译OpenHarmony 2.0 Canary

解:
下载官方文档推荐的版本,单独安装Python,不要用anaconda的,那个识别不到。

  • 卸载Python3.8,保留了Anaconda用的3.7.4版本,但是DDT的主页直接打不开了。

尝试更新一下conda

conda update --all

还是一样。Anaconda更新后打不开了,卸载重装。

conda报错

Collecting package metadata (current_repodata.json): failed
check_hostname requires server_hostname

解:删除.condarc无效,退出代理软件有效。

DDT只认单独安装的Python,不认conda的。

参考

DevEco Device Tool 2.2 Beta1 在Windows环境一站式编译烧录体验-鸿蒙HarmonyOS技术社区-鸿蒙官方战略合作伙伴-51CTO.COM
https://harmonyos.51cto.com/posts/5821

IDE - HarmonyOS设备开发官网
https://device.harmonyos.com/cn/ide#download_release

用户指南-Windows开发环境准备
https://device.harmonyos.com/cn/docs/ide/user-guides/install_windows-0000001050164976

zh-cn/device-dev/quick-start/Readme-CN.md · OpenHarmony/docs - Gitee
https://gitee.com/openharmony/docs/blob/master/zh-cn/device-dev/quick-start/Readme-CN.md

用户指南-Windows平台源码编译
https://device.harmonyos.com/cn/docs/ide/user-guides/hi3861_windows-0000001101110444

(完)

体验Windows本地编译OpenHarmony 2.0 Canary

上一篇:C# 构建一个TCP和SerialPort通信的通用类(下)


下一篇:Linux | alias 命令别名