当我尝试为Android构建TensorFlow Lite时遇到很多错误。我遵循的是https://www.tensorflow.org/lite/guide/ops_select中使用以下代码的指南:
bazel build --cxxopt='--std=c++11' -c opt \
--config=android_arm --config=monolithic \
//tensorflow/lite/java:tensorflow-lite-with-select-tf-ops
甚至尝试过:
bazel build --cxxopt='--std=c++11' -c opt \
--config=android_arm64 --config=monolithic \
//tensorflow/lite/java:tensorflow-lite-with-select-tf-ops
但是我收到类似这样的错误
Execution platform: @bazel_tools//platforms:host_platform
external/com_google_absl/absl/synchronization/mutex.cc:1103:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Block(PerThreadSynch *s) {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1450:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Lock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1468:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::ReaderLock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1581:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) bool Mutex::TryLock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1610:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) bool Mutex::ReaderTryLock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1656:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::Unlock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
external/com_google_absl/absl/synchronization/mutex.cc:1708:1: error: 'xray_log_args' attribute is invalid for the implicit this argument
ABSL_XRAY_LOG_ARGS(1) void Mutex::ReaderUnlock() {
^ ~
external/com_google_absl/absl/base/attributes.h:514:38: note: expanded from macro 'ABSL_XRAY_LOG_ARGS'
[[clang::xray_always_instrument, clang::xray_log_args(N)]]
^ ~
7 errors generated.
Target //tensorflow/lite/java:tensorflow-lite-with-select-tf-ops failed to build
INFO: Elapsed time: 555.749s, Critical Path: 174.46s
INFO: 490 processes: 485 local, 5 worker.
FAILED: Build did NOT complete successfully
还尝试遵循https://becominghuman.ai/how-to-build-tensorflow-as-a-static-library-for-android-5c762dbdd5d4创建一个静态库,但随后我在其他文件中得到了不同类型的错误
error: 'to_string' is not a member of 'std'
我的构建系统是Ubuntu,我在r1.14分支中
有没有人设法为Android构建TensorFlow Lite,这可以给我一些建议?
答案 0 :(得分:1)
我不知道第一个错误,但是我得到了第二个错误,然后尝试使用旧的NDK版本编译TFLite。尝试使用Android NDK修订版18b,不要忘记重新运行 configure 脚本。