protobuf android ndk,直接在Android NDK端使用tensorflow(不使用JAVA api)

这是我如何解决这个问题.虽然没有太多关于在an​​droid上使用c apis以及编译和链接tensorflow到NDK的文档,但是makefile有重要的注释以及相关的脚本.编译步骤与ios非常相似.

>安装以下依赖关系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项目的共享库.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值