macOS'te CMake ile LiteRT çalışma zamanını yapılandırmak ve oluşturmak için bu kılavuzu kullanın. Talimatlar hem Android çapraz derleme hedeflerini (ana makine olarak macOS ve Linux kullanılarak) hem de yerel macOS ve Linux derlemelerini kapsar.
Sık Kullanılan Derleme Adımları
CMake 4.0.1'i şu adresten yükleyin: https://github.com/kitware/cmake/releases
Tüm derleme ön ayarları, depodaki kök dizinden çalışmanızı gerektirir:
cd ./litert
Oluşturulan derleme ağaçları cmake_build* altında bulunur. Paralel derlemeler, istenen çekirdek sayısı ile -j üzerinden kontrol edilebilir.
Kullanılabilir Derleme Türleri
LiteRT, hem Release hem de Debug derleme türlerini destekler:
| Ön ayarlı | Platform | Derleme Türü | Çıkış Dizini |
|---|---|---|---|
default |
Masaüstü (macOS/Linux) | Serbest bırak | cmake_build |
default-debug |
Masaüstü (macOS/Linux) | Hata ayıkla | cmake_build_debug |
android-arm64 |
Android arm64 | Serbest bırak | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Hata ayıkla | cmake_build_android_arm64_debug |
Yayın derlemelerinde, optimize edilmiş üretim ikilileri için -O3 -DNDEBUG kullanılır.
Hata ayıklama derlemeleri, tam sembol bilgileriyle hata ayıklama için -O0 -g kullanır.
Android (arm64) Çapraz Derleme
Android NDK'yı yükleyin ve CMake'in bulabilmesi için yolu dışa aktarın:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Ana makine tarafındaki FlatBuffer araçlarını yapılandırma
cmake --preset android-arm64;Sağlanan hazır ayarı kullanarak LiteRT Android derlemesini yapılandırın ve oluşturulan FlatBuffers araçlarını işaret edin:
# 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)"Android için LiteRT'yi oluşturun:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Statik kitaplıklar gibi yapılar, ilgili derleme dizini (cmake_build_android_arm64 veya cmake_build_android_arm64_debug) altında yayınlanır.
macOS ve Linux'ta masaüstü derlemesi
Masaüstü derlemeleri için varsayılan hazır ayarı yapılandırın:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugLiteRT'yi oluşturma:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Derleme hedefinizi özelleştirme
CMake Derlemelerini Özelleştirme
Hedeflerinizde hangi araç zincirlerinin ve özelliklerin derleneceğini kontrol etmek için CMake seçeneklerini kullanın. Örneğin:
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_COMPILER, yardımcı ana makine araçlarınıCMakeLists.txtdosyasını düzenlemeden herhangi bir Clang/GCC yüklemesine yönlendirmenize olanak tanır.LITERT_DISABLE_KLEIDIAI, KleidiAI'yı atlayarak x86 masaüstü derlemelerinin yeniden üretilmesini sağlar. Temsilciyi paketlemek istediğinizdeOFFolarak ayarlayın.- Optimize edilmiş öğeye ihtiyacınız olduğunda her zaman
-DCMAKE_BUILD_TYPE=Release(veya eşdeğer hazır ayar) iletin. Bu, CMake'in sizin için-O3 -DNDEBUGkullanmasını sağlar.
Minimum Boyutlu Tedarikçi Kitaplıkları Üretme
Bağlantı sırasında, gönderme kitaplıklarının Bazel'in boyutuyla eşleşmesi için dead-stripping'i etkinleştirin:
- macOS: add
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(veCMAKE_EXE_LINKER_FLAGS_RELEASEiçin de aynısı geçerlidir, eğer yürütülebilir dosyaların kaldırılmasını istiyorsanız). Derleme işleminden sonra şu komutu çalıştırın:strip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux:
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"ekleyin vestrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.sokomutunu çalıştırın (veyaPOST_BUILDkomutu haline getirin).
Bu işaretler, cmake --preset … girişlerinde doğrudan bulunabilir. Böylece ekibinizdeki her geliştirici aynı yapılandırmaya sahip olur.CMakePresets.json
Sorun gidermeyle ilgili ipuçları
- Araç zincirlerini veya önemli yapılandırma seçeneklerini değiştirirseniz ilgili
cmake_build*dizinini silin, ardından yapılandırma adımını yeniden çalıştırın. - Çözülen bağımlılık yolları için her derleme ağacının içindeki
CMakeCache.txtöğesini inceleyin.