解决方法
>安装以下依赖关系a)autoconf b)automake c)automake.然后运行tensorflow / contrib / makefile / download_dependencies.sh;我第一次运行2017年5月10日的存储库,当它完美运行时.在6月1日左右的更高版本中,由于tensorflow / workspace.bzl的一些变化,我在download_dependencies.sh中无法理解,无法识别tar_dependencies正在尝试下载的tar文件.我刚从5月10日的repo commit中替换了workspace.bzl.
>第2步是像这样运行tensorflow / contrib / makefile / compile_android_protobuf.sh
NDK_ROOT =绝对/路径/到/ ndk /文件夹./tensorflow/contrib/makefile/compile_android_protobuf.sh
>运行make.但首先您可能需要在Makefile中进行一些更改.用-fPIC标志替换-fPIE标志.还要将-fPIC标志添加到HOST_CXXFLAGS.然后像这样运行make:
make -f tensorflow / contrib / makefile / Makefile TARGET = ANDROID NDK_ROOT = absolute / path / to / ndk / folder
或者,也可以运行build_all_android.sh,它一次运行所有3个步骤,但您可能需要对标志进行Makefile更改.
这生成了tensorflow / contrib / makefile / gen / protobuf / lib / libprotobuf.a和tensorflow / contrib / makefile / gen / lib / libtensorflow-core.a;这可以链接到LOCAL_LDLIBS下的Android.mk文件中的Android NDK项目.应该使用这些链接标志-Wl,– build-id -Wl,– allow-multiple-definition -Wl,– whole-archive同时-std = c 11在Android.mk文件中的LOCAL_CFLAGS和APP_STL:= gnustl_shared在Application.mk文件中.
这应该足以构建NDK项目的共享库.