Hãy dùng hướng dẫn này để định cấu hình và tạo thời gian chạy LiteRT bằng CMake trên macOS. Hướng dẫn này bao gồm cả các mục tiêu biên dịch chéo Android (sử dụng macOS và Linux làm máy chủ lưu trữ) và các bản dựng macOS và Linux gốc.
Các bước phổ biến để tạo bản dựng
Cài đặt CMake 4.0.1 từ: https://github.com/kitware/cmake/releases
Tất cả các chế độ cài đặt sẵn khi tạo đều yêu cầu bạn làm việc từ thư mục gốc của kho lưu trữ:
cd ./litert
Các cây bản dựng được tạo nằm trong cmake_build*. Bạn có thể kiểm soát các bản dựng song song thông qua -j với số lượng lõi mong muốn.
Các biến thể bản dựng hiện có
LiteRT hỗ trợ cả Release và Debug build flavors:
| Chế độ đặt sẵn | Nền tảng | Loại bản dựng | Thư mục đầu ra |
|---|---|---|---|
default |
Máy tính (macOS/Linux) | Bản phát hành | cmake_build |
default-debug |
Máy tính (macOS/Linux) | Gỡ lỗi | cmake_build_debug |
android-arm64 |
Android arm64 | Bản phát hành | cmake_build_android_arm64 |
android-arm64-debug |
Android arm64 | Gỡ lỗi | cmake_build_android_arm64_debug |
Bản dựng Phát hành sử dụng -O3 -DNDEBUG cho các tệp nhị phân sản xuất được tối ưu hoá.
Các bản dựng Gỡ lỗi sử dụng -O0 -g để gỡ lỗi bằng thông tin ký hiệu đầy đủ.
Biên dịch chéo Android (arm64)
Cài đặt Android NDK và xuất đường dẫn để CMake có thể tìm thấy:
export ANDROID_NDK_HOME=/absolute/path/to/android-ndk-r27Định cấu hình các công cụ flatbuffer phía máy chủ lưu trữ
cmake --preset android-arm64;Định cấu hình bản dựng Android LiteRT bằng cách sử dụng chế độ cài đặt sẵn được cung cấp và trỏ đến các công cụ FlatBuffers đã tạo:
# 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)"Tạo LiteRT cho Android:
# For Release build: cmake --build cmake_build_android_arm64 -j # For Debug build: cmake --build cmake_build_android_arm64_debug -j
Các cấu phần phần mềm như thư viện tĩnh sẽ được phát ra trong thư mục bản dựng tương ứng (cmake_build_android_arm64 hoặc cmake_build_android_arm64_debug).
Bản dựng dành cho máy tính từ macOS và Linux
Thiết lập chế độ cài đặt sẵn mặc định cho bản dựng dành cho máy tính:
# For Release build: cmake --preset default # For Debug build: cmake --preset default-debugTạo LiteRT:
# For Release build: cmake --build cmake_build -j # For Debug build: cmake --build cmake_build_debug -j
Tuỳ chỉnh mục tiêu bản dựng
Tuỳ chỉnh bản dựng CMake
Sử dụng các lựa chọn CMake để kiểm soát những chuỗi công cụ và tính năng được biên dịch vào các mục tiêu của bạn. Ví dụ:
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_COMPILERcho phép bạn trỏ các công cụ máy chủ trợ giúp đến mọi bản cài đặt Clang/GCC mà không cần chỉnh sửaCMakeLists.txt.LITERT_DISABLE_KLEIDIAIgiúp các bản dựng máy tính x86 có thể tái tạo bằng cách bỏ qua KleidiAI; hãy đặt thànhOFFbất cứ khi nào bạn muốn kết hợp đại biểu.- Luôn truyền
-DCMAKE_BUILD_TYPE=Release(hoặc chế độ đặt sẵn tương đương) khi bạn cần đến cấu phần phần mềm được tối ưu hoá. Thao tác này giúp CMake sử dụng-O3 -DNDEBUGcho bạn.
Tạo Thư viện tối thiểu của nhà cung cấp
Tại thời điểm liên kết, hãy bật tính năng loại bỏ mã không dùng đến để các thư viện điều phối có kích thước phù hợp với Bazel:
- macOS: thêm
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,-dead_strip -dead_strip_dylibs"(và tương tự đối vớiCMAKE_EXE_LINKER_FLAGS_RELEASEnếu bạn muốn xoá các tệp thực thi). Sau khi tạo, hãy chạystrip -x path/to/libLiteRtDispatch_Qualcomm.dylib. - Linux: thêm
-DCMAKE_SHARED_LINKER_FLAGS_RELEASE="-Wl,--gc-sections"và chạystrip --strip-unneeded path/to/libLiteRtDispatch_Qualcomm.so(hoặc tạo lệnhPOST_BUILD).
Các cờ này có thể nằm ngay trong các mục cmake --preset … trong CMakePresets.json để mọi nhà phát triển trong nhóm của bạn đều có cùng một cấu hình.
Mẹo khắc phục sự cố
- Xoá thư mục
cmake_build*tương ứng nếu bạn thay đổi chuỗi công cụ hoặc các lựa chọn cấu hình chính, sau đó chạy lại bước định cấu hình. - Kiểm tra
CMakeCache.txtbên trong mỗi cây bản dựng để biết các đường dẫn phần phụ thuộc đã phân giải.