體驗Windows本地編譯OpenHarmony 2.0 Canary
之前用Ubuntu虛擬機來編譯鴻蒙源碼,聽說DevEco Device Tool 2.2 Beta1可以在Windows一站式編譯。馬上嘗嘗。
一、準備工作
參考社區(qū)的文檔

參考官網(wǎng)文檔,部署Windows環(huán)境。

上官網(wǎng)下載HUAWEI DevEco Device Tool 2.2 Beta1,簡稱DDT,關閉VScode后直接安裝。

檢查各種工具的版本,我的VS code要升級一下,打開即會自動更新,更新完重啟VS code即可。其他工具的更新也是參考官方文檔就行,文檔很全。

官網(wǎng)的文檔說支持Linux編譯,我有點懵圈。

看這個文檔才對。

下載好源碼,用bandizip解壓一堆報錯,換成在PowerShell用tar解壓。
- tar -zxvf code-2.0-canary.tar.gz
這是全量代碼,解壓花了十多分鐘。
安裝MinGW勾選這2個。其實只勾最下邊那個就可以了吧?

在VScode設置工具鏈

二、編譯
打開源碼

編譯成功。

花了90s,想要加快速度最好用服務器編譯。
三、燒錄
修改applications\sample\wifi-iot\app\BUILD.gn
- lite_component("app") {
- features = [
- #"startup",
- "iothardware:led_example"
- ]
- }
編譯Led demo
參考官網(wǎng),設置端口:

燒錄成功。
四、一些報錯
打開工程報錯
- [2021/6/26下午5:46:22] 無法使用 compilerPath“riscv32-unknown-elf-gcc”解析配置。 請改用“D:\tool\Strawberry\c\bin\gcc.exe”。
- 1.
- 1.
- 無法找到“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)
解:
按照網(wǎng)友的方法:
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

查看日志"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,不行。

解:
下載官方文檔推薦的版本,單獨安裝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環(huán)境一站式編譯燒錄體驗-鴻蒙HarmonyOS技術社區(qū)-鴻蒙官方戰(zhàn)略合作伙伴-51CTO.COM
https://harmonyos.51cto.com/posts/5821
IDE - HarmonyOS設備開發(fā)官網(wǎng)
https://device.harmonyos.com/cn/ide#download_release
用戶指南-Windows開發(fā)環(huán)境準備
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