?以下是在 Ubuntu 20.04 系統上的操作,tpc_c_cplusplus 他是把編譯的流程都給寫進去了,你只需要關注你要編譯的庫配置好環境就行了。
第一步:下載 tpc_c_cplusplus? 倉庫地址:??
GitCode - 全球開發者的開源社區,開源代碼托管平臺
openharmony-sig 組織已經寫好了腳本,先進入他的?thirdparty 目錄下,找你想要編譯的庫;
第二步:如果你里有你需要用的庫,就進入到??lycium 目錄下,開始嘗試編譯; 以 libxml2 為例編譯;?
./build.sh libxml2
這個時間,如果你沒配置環境變量,他會提示你的;
?
第三步: 配置環境變量:配置前去?下載中心?下載?command Line Tools for HarmonyOS,下載完配置好 OHOS_SDK 以及其他編譯需要用到的工具,你可以配置到全局,我這里就臨時配置一下:
export OHOS_SDK=~/home/command-line-tools/sdk/default/openharmonyexport AS=${OHOS_SDK}/native/llvm/bin/llvm-as
export CC="${OHOS_SDK}/native/llvm/bin/clang --target=aarch64-linux-ohos"
export CXX="${OHOS_SDK}/native/llvm/bin/clang++ --target=aarch64-linux-ohos"
export LD=${OHOS_SDK}/native/llvm/bin/ld.lld
export STRIP=${OHOS_SDK}/native/llvm/bin/llvm-strip
export RANLIB=${OHOS_SDK}/native/llvm/bin/llvm-ranlib
export OBJDUMP=${OHOS_SDK}/native/llvm/bin/llvm-objdump
export OBJCOPY=${OHOS_SDK}/native/llvm/bin/llvm-objcopy
export NM=${OHOS_SDK}/native/llvm/bin/llvm-nm
export AR=${OHOS_SDK}/native/llvm/bin/llvm-ar
export CFLAGS="-fPIC -D__MUSL__=1"
export CXXFLAGS="-fPIC -D__MUSL__=1"
配置好后,? 再運行:
./build.sh libxml2
如果你還有工具沒有安裝, 他會提示你,我第一次的時候,就遇到了 cmake? 沒有安裝的提示:
?
然后, 這里安裝完后,還是有問題,我用默認安裝的 cmake 的版本有點低,如果你也遇到,可以去下載這個:
wget https://github.com/Kitware/CMake/releases/download/v3.28.3/cmake-3.28.3-linux-x86_64.tar.gz
下載完后,配置到PATH:cmake --version 查一下當前使用的版本是對的;?
export PATH=~/wgx/cmake-3.28.3-linux-x86_64/bin:$PATH
cmake --version
cmake version 3.28.3
拷貝編譯工具
為了簡化開發中命令的配置,我們針對arm架構以及aarch64架構集成了幾個編譯命令,存放在lycium/Buildtools
目錄下,在使用lycium
工具前,需要將這些編譯命令拷貝到SDK對應的目錄下,具體操作如下:
cd lycium/Buildtools # 進入到工具包目錄sha512sum -c SHA512SUM # 可校驗工具包是否正常, 若輸出"toolchain.tar.gz: OK"則說明工具包正常,否則說明工具包異常,需重新下載tar -zxvf toolchain.tar.gz # 解壓拷貝編譯工具cp toolchain/* ${OHOS_SDK}/native/llvm/bin # 將命令拷貝到工具鏈的native/llvm/bin目錄下
設置編譯機cmake識別OHOS系統
由于sdk中的cmake版本過低, 導致很多開源庫在cmake階段報錯. 這個時候就需要用戶在編譯機上安裝一個高版本的cmake(推薦使用3.26及以上版本). 但是 cmake官方是不支持OHOS的. 解決方案:
cp $OHOS_SDK/native/build-tools/cmake/share/cmake-3.16/Modules/Platform/OHOS.cmake xxx(代表你編譯機安裝的cmake的路徑)/cmake-3.28.3-linux-x86_64/share/cmake-3.26/Modules/Platform
做完以上這些,再次運行??./build.sh libxml2?
?
編譯的產物會在??lycium/usb 目錄下, 就會有 libxml2 文件夾,進入 libxml2,里面是長這樣的,然后把include 和 lib 拷貝到鴻蒙工程里就可以使用了。?