HarmonyOS 開發避坑指南

2021-10-09 14:11:57 字數 4383 閱讀 5756

坑點總結:

2.編譯原始碼主要的乙個大坑是,預設版本的scons依賴python 3.7+,鴻蒙基礎編譯**依賴python3,需要安裝python 3.7+,並和當前系統上的python2.7/python3.6和諧共處!解決方法一般有兩種:

# 開始前需要配置`user.name`和`user.email`,如果沒有配置,使用如下命令進行配置:

repo sync -c # 以後每天同步遠端倉的修改,只需要執行這一條命令即可

本節介紹如何在linux主機上配置鴻蒙原始碼的編譯構建環境,所有命令均通過遠端終端在linux主機上執行。

執行"mkfs.vfat",如果未找到該命令,需要安裝

執行"mcopy ",如果未找到該命令,需要安裝

sudo apt-get install dosfstools mtools  # 官方文件說明的兩個檔案系統打包工具

sudo apt-get install zip # 官方文件雖然沒有寫,但是打包rootfs過程中需要使用

# 編譯 hi3861 需要 riscv 編譯工具鏈

wget $url_prefix/gcc_riscv32/7.3.0/linux/gcc_riscv32-linux-7.3.0.tar.gz

# 解壓gn/ninja/llvm/hc-gen包:

tar -c ~/ -xvf gn.1523.tar

tar -c ~/ -xvf ninja.1.9.0.tar

tar -c ~/ -xvf llvm-linux-9.0.0-34042.tar

tar -c ~/ -xvf hc-gen-0.65-linux.tar

tar -c ~/ -xvf gcc_riscv32-linux-7.3.0.tar.gz

# 向 ~/.bashrc 中追加gn/ninja/llvm/hc-gen路徑配置:

cat <> ~/.bashrc

export path=~/gn

:\$path

export path=~/ninja

:\$path

export path=~/llvm/bin

:\$path

export path=~/hc-gen

:\$path

export path=~/gcc_riscv32/bin

:\$path

export path=~/.local/bin

:\$path # 使用者pip二進位制工具目錄

eof# 生效環境變數

eof

# 安裝virtualenv

pip3 install vritualenv

# 建立使用python3.8為預設python直譯器的virtualenv

mkdir ~/harmonyos/venv && virtualenv -p python3.8 ~/harmonyos/venv

# 啟用 virtualenv,啟用後的pip3 install會將包檔案快取到相應的子目錄中

source ~/harmonyos/venv/bin/activate

# 安裝 setuptools 和 kconfiglib

pip3 install setuptools kconfiglib

# 安裝編譯hi3861需要的pip包

pip3 install scons ecdsa pycryptodome

pip3 install --upgrade --ignore-installed six

# 可選:將啟用指令碼新增到 bashrc 中,下次登入預設自動啟用此python虛擬環境,可以使用 deactivate 使虛擬環境無效

cat <> ~/.bashrc

source ~/harmonyos/venv/bin/activate

eof

啟用剛剛建立的python虛擬環境後,在原始碼根目錄下(openharmony目錄)執行:

$ source ~/harmonyos/venv/bin/activate # 啟用虛擬環境,啟用後 deactivate 命令可使當前虛擬環境無效

可以檢視支援哪些目標平台,目前可選的有三個。

python build.py ipcamera_hi3516dv300 -b debug
編譯生成的kernel、rootfs、userfs映像檔案會生成到out/ipcamera_hi3516dv300目錄下,u-boot二進位制會生成在vendor目錄(可以通過find vendor -name u-boot*.bin命令進行查詢)。

python build.py ipcamera_hi3516dv300 -b debug
編譯生成的kernel、rootfs、userfs映像檔案會生成到out/ipcamera_hi3518ev300目錄下,u-boot二進位制會生成在vendor目錄(可以通過find vendor -name u-boot*.bin命令進行查詢)。

python build.py wifiiot
編譯過程中可能會遇到ffmpeg相關的編譯失敗,可能是因為configure過程**現了問題,可以通過vendor/hisi/hi35xx/middleware/source/third_party/ffmpeg/ffmpeg-y/ffbuild/config.log檔案檢視。

鴻蒙裝置開發:

鴻蒙應用開發:

python避坑 python避坑指南,持續更新

python安裝,匯入,和使用避坑指南,持續更新 bestmrright原創 因為python庫太多,開發者眾多,有些庫引用了其他庫,隨著其他庫不斷更新,有些類和方法會修改,有些庫作廢,有些庫被收入進python,所以使用時候經常有坑需要迴避。在此建貼,持續更新,以便後來者避坑,希望來著補充。安裝坑...

MySQL left join 避坑指南

這裡我先給出乙個場景,並丟擲兩個問題,如果你都能答對那這篇文章就不用看了。那麼現在有兩個需求 找出每個班級的名稱及其對應的女同學數量 找出一班的同學總數 對於需求1,大多數人不假思索就能想出如下兩種sql寫法 正確 select c.name,count s.name as num from cla...

C避坑指南

int型 絕對值在10 9範圍內的整數都可以定義成int型。long long型 如果long long型賦值大於2 31 1的初值,則需要在初值後面加上ll,否則會編譯錯誤。float double輸入輸出格式 使用printf f c 語句時,f是float和double型的輸出格式。而在使用s...