Përdorni këtë udhëzues për të konfiguruar dhe ndërtuar kohën e ekzekutimit LiteRT me CMake në macOS. Udhëzimet mbulojnë si objektivat e përpilimit të kryqëzuar të Android (duke përdorur macOS dhe Linux si makinë pritëse) ashtu edhe versionet native të macOS dhe Linux.
Hapat e zakonshëm të ndërtimit
Instaloni CMake 4.0.1 nga: https://github.com/kitware/cmake/releases
Të gjitha paracaktimet e ndërtimit presin që ju të punoni nga rrënja e repozitorit:
cd ./litert
Pemët e gjeneruara të ndërtimit ndodhen nën cmake_build* . Ndërtimet paralele mund të kontrollohen nëpërmjet -j me numrin e dëshiruar të bërthamave.
Shije Ndërtimi të Disponueshme
LiteRT mbështet të dyja versionet e ndërtimit, Release dhe Debug :
| Paracaktuar | Platforma | Lloji i Ndërtimit | Drejtoria e Daljes |
|---|---|---|---|
default | Desktop (macOS/Linux) | Publikim | cmake_build |
default-debug | Desktop (macOS/Linux) | Debug | cmake_build_debug |
android-arm64 | Android arm64 | Publikim | cmake_build_android_arm64 |
android-arm64-debug | Android arm64 | Debug | cmake_build_android_arm64_debug |
Ndërtimet e versioneve përdorin -O3 -DNDEBUG për binarët e prodhimit të optimizuar. Ndërtimet e debugimit përdorin -O0 -g për debugim me informacion të plotë të simboleve.
Android (arm64) Kryqëzim-Përmbledhje
Instaloni NDK-në Android dhe eksportoni shtegun në mënyrë që CMake ta gjejë atë:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Konfiguro mjetet flatbuffer në anën e hostit
cmake --preset android-arm64;Konfiguroni ndërtimin LiteRT Android duke përdorur paracaktimin e dhënë dhe drejtohuni te mjetet e gjeneruara të FlatBuffers:
# For Release build: cmake --preset android-arm64 \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)" # For Debug build: cmake --preset android-arm64-debug \ -DTFLITE_HOST_TOOLS_DIR="$(cd ../host_flatc_build/_deps/flatbuffers-build && pwd)"Ndërtoni LiteRT për Android:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Artefaktet si bibliotekat statike do të emetohen nën direktorinë përkatëse të ndërtimit ( cmake_build_android_arm64 ose cmake_build_android_arm64_debug ).
Ndërtimi i Desktopit nga macOS dhe Linux
Konfiguro parazgjedhjen e parazgjedhur për ndërtimet e Desktopit:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugNdërto LiteRT:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Personalizo objektivin tënd të ndërtimit
Përshtatja e Ndërtimeve CMake
Përdorni opsionet CMake për të kontrolluar se cilat zinxhirë mjetesh dhe veçori kompilohen në objektivat tuaj. P.sh.:
cmake -S . -B build-release \
-DCMAKE_BUILD_TYPE=Release \
-DLITERT_AUTO_BUILD_TFLITE=ON \
-DLITERT_ENABLE_GPU=OFF \
-DLITERT_ENABLE_NPU=OFF \
-DLITERT_DISABLE_KLEIDIAI=ON \
-DLITERT_HOST_C_COMPILER=/usr/bin/clang \
-DLITERT_HOST_CXX_COMPILER=/usr/bin/clang++
cmake --build build-release --target dispatch_api_Qualcomm_so -j8
-
LITERT_HOST_C_COMPILER/LITERT_HOST_CXX_COMPILERju lejon të drejtoni mjetet ndihmëse të hostit në çdo instalim të Clang/GCC pa modifikuarCMakeLists.txt. -
LITERT_DISABLE_KLEIDIAIi mban versionet e desktopit x86 të riprodhueshme duke anashkaluar KleidiAI; vendoseni nëOFFsa herë që dëshironi ta paketoni delegatin. - Gjithmonë kaloni
-DCMAKE_BUILD_TYPE=Release(ose parazgjedhjen ekuivalente) kur keni nevojë për artefaktin e optimizuar. Kjo e bën CMake të përdorë-O3 -DNDEBUGpër ju.
Prodhimi i Bibliotekave të Furnizuesve me Madhësi Minimale
Në kohën e lidhjes aktivizoni dead-stripping në mënyrë që bibliotekat e dispeçimit të përputhen me madhësinë e Bazel:
- macOS: shtoni
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(dhe të njëjtën gjë përCMAKE_EXE_LINKER_FLAGS_RELEASEnëse dëshironi që skedarët e ekzekutueshëm të hiqen). Pas ndërtimit, ekzekutonistrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux: shtoni
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"dhe ekzekutonistrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so(ose bëjeni një komandëPOST_BUILD).
Këto flamuj mund të vendosen direkt në hyrjet cmake --preset … në CMakePresets.json kështu që çdo zhvillues në ekipin tuaj merr të njëjtin konfigurim.
Këshilla për zgjidhjen e problemeve
- Fshini direktorinë përkatëse
cmake_build*nëse ndryshoni zinxhirët e mjeteve ose opsionet kryesore të konfigurimit, pastaj riekzekutoni hapin e konfigurimit. - Inspektoni
CMakeCache.txtbrenda çdo peme ndërtimi për shtigje varësie të zgjidhura.