У меня есть один код. cpp с выводом модели tflite. Этот файл исходного кода является частью рабочей области Bazel. Я хочу собрать его с помощью стандартного компилятора рабочего стола и пользовательского набора инструментов arm64 из ndk, затем запустить его на P C и мобильном устройстве и сравнить результат. Как я могу указать собственный компилятор из ndk toolchain (someandroidndkpath / toolchains / arm64 / bin / clang)?
У меня есть простая цель в моем файле BUILD:
cc_binary(
name = "Evaluation",
srcs = ["evaluation.cpp"],
visibility = ["//visibility:public"],
deps = [
"@org_tensorflow//tensorflow/lite:framework",
"@org_tensorflow//tensorflow/lite/kernels:builtin_ops",
],
)
Редактировать: Спасибо @ahumesky, это работает. Я хотел бы уточнить, как настроить правило android_ndk_repository.
Go до репо tenenflow / third_party / android и поместите эти файлы в ваш проект.
Установите путь и версию android sdk в android_configure.bzl. (Это самый простой способ, но вы можете сделать это с помощью .bazelr c переменных)
Пример:
_ANDROID_NDK_HOME = "~/Android/Sdk/ndk/20.1.5948944/"
_ANDROID_SDK_HOME = "~/Android/Sdk/"
_ANDROID_NDK_API_VERSION = "29"
_ANDROID_SDK_API_VERSION = "29"
_ANDROID_BUILD_TOOLS_VERSION = "29.0.2"
Добавить в WORKSPACE.
Пример:
load("//third_party/android:android_configure.bzl", "android_configure")
android_configure(name = "local_config_android")
load("@local_config_android//:android.bzl", "android_workspace")
android_workspace()
Создайте цель со следующими флагами, вставьте ее на устройство android и запустите.