重建android的tensorflow时,我遇到致命错误:找不到'stdlib.h'文件

时间:2018-02-23 05:26:35

标签: android tensorflow python-3.5

在Ubuntu 16.04中,当使用我的protobuf文件运行Android Tensorflow TFDetect实现时,我收到一条错误,指出“No OpKernel已注册以支持Op'ceil'”。我不得不修改移动版本以包含正确的.cc文件,然后我继续运行以下命令以在重建Tensorflow之后构建jar:

  

bazel build -c opt   //tensorflow/contrib/android:libtensorflow_inference.so
  --crosstool_top = // external:android / crosstool --host_crosstool_top = @ bazel_tools // tools / cpp:toolchain --cpu = armeabi-v7a

然后我收到错误,指出由于缺少stdlib.h而导致构建未完成:

  

包含来自的文件   外部/ androidndk / NDK /来源/ CXX-STL / GNU-的libstdc ++ / 4.9 /包含/算法:62:   在包含的文件中   外部/ androidndk / NDK /来源/ CXX-STL / GNU-的libstdc ++ / 4.9 /包含/比特/ stl_algo.h:59:   外部/ androidndk / NDK /来源/ CXX-STL / GNU-的libstdc ++ / 4.9 /包含/ cstdlib:72:10:   致命错误:找不到'stdlib.h'文件

我看到很多其他人被告知使用预建的二进制文件,但这对我不起作用,因为我需要一些额外的内核,这些内核被移除了。

任何人对如何构建必要的安卓jar都有任何想法?

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。在下面的链接中,它指出NDK版本16不支持bazel。我最初安装了14b,但是当我在Android Studio中打开我的项目时,它曾要求更新NDK并且我升级了。当我碰巧在解决这个问题时,我注意到它是版本16,然后最终删除并安装版本14.在重建所有源代码然后执行上述调用到bazel之后,一切都顺利进行。我这个愚蠢的错误。

https://github.com/tensorflow/tensorflow/blob/master/tensorflow/examples/android/README.md