为 android 构建 tensorflow 时出现 Bazel 错误 "this rule is missing dependency declarations for the following files"

Bazel error "this rule is missing dependency declarations for the following files" when building tensorflow for android

我正在尝试为 android 构建 tensorflow。我想在 android 上使用 DecodeJpeg 操作。因此,我添加了文件 decode_image_op.cc,其中声明要构建文件。

这是我运行构建tensorflow

的命令
bazel build -c opt //tensorflow/contrib/android:libtensorflow_inference.so  --crosstool_top=//external:android/crosstool  --host_crosstool_top=@bazel_tools//tools/cpp:toolchain --cpu=arm64-v8a

这将引发以下错误

ERROR: /tensorflow/core/kernels/BUILD:4950:1: undeclared inclusion(s) in rule '//tensorflow/core/kernels:android_tensorflow_kernels':
this rule is missing dependency declarations for the following files included by 'tensorflow/core/kernels/decode_image_op.cc':
  '/tensorflow/core/lib/jpeg/jpeg_mem.h'
  '/tensorflow/core/platform/jpeg.h'

我应该在哪里添加这些头文件来解决这个错误?

看来您可以在 cc_binary 目标 //tensorflow/contrib/android:libtensorflow_inference.sodeps 属性中添加 cc_library 目标 //tensorflow/core/kernels:android_tensorflow_image_op

//tensorflow/core/kernels:android_tensorflow_image_op 已经定义了 decode_image_op.cc 及其依赖项。