这是我如何解决这个问题.虽然没有太多关于在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项目的共享库.

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

  1. 《Android游戏开发详解》一2.18 使用Java API中的对象

    本节书摘来异步社区<Android游戏开发详解>一书中的第2章,第2.18节,译者: 李强 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区"公众号查看. 2.1 ...

  2. 【Android】Eclipse自动编译NDK/JNI的三种方法

    [Android]Eclipse自动编译NDK/JNI的三种方法 SkySeraph Sep. 18th  2014 Email:skyseraph00@163.com 更多精彩请直接访问SkySer ...

  3. [Android] 环境配置之Android Studio开发NDK

    2019独角兽企业重金招聘Python工程师标准>>> ======================================================== 作者:qiu ...

  4. 【Android NDK 开发】Android Studio 使用 CMake 导入动态库 ( 构建脚本路径配置 | 指定动态库查找路径 | 链接动态库 )

    文章目录 I . CMake 引入动态库与静态库区别 II . Android Studio 中 CMake 引入动态库流程 III . 指定动态库查找路径 IV . 链接函数库 V . 完整代码示例 ...

  5. 【Android NDK 开发】Android Studio 使用 CMake 导入静态库 ( CMake 简介 | 构建脚本路径配置 | 引入静态库 | 指定静态库路径 | 链接动态库 )

    文章目录 I . CMake 简介 II . Android Studio 中 CMake 引入静态库流程 III . 指定 CMake 最小版本号 IV . 导入函数库 ( 静态库 / 动态库 ) ...

  6. 【Android NDK 开发】Android.mk 配置静态库 ( Android Studio 配置静态库 | 配置动态库与静态库区别 | 动态库与静态库打包对比 )

    文章目录 I . Android Studio 中使用 Android.mk 配置静态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  7. 【Android NDK 开发】Android.mk 配置动态库 ( Android Studio 配置动态库 | 动态库加载版本限制 | 本章仅做参考推荐使用 CMake 配置动态库 )

    文章目录 I . Android Studio 中使用 Android.mk 配置动态库 总结 II . 第三方动态库来源 III . 配置 Android.mk 构建脚本路径 IV . 预编译 第三 ...

  8. 【Android NDK 开发】Ubuntu 函数库交叉编译 ( Android 动态库交叉编译 | Android 静态库交叉编译 )

    文章目录 I . Ubuntu 中交叉编译 Android 动态库 II . Ubuntu 中交叉编译 Android 静态库 I . Ubuntu 中交叉编译 Android 动态库 1 . 要编译 ...

  9. 【Android NDK 开发】Android Studio 的 NDK 配置 ( 源码编译配置 | 构建脚本配置 | 打包配置 | CMake 配置 | ndkBuild 配置 )

    文章目录 I . 源码编译配置 II . 构建脚本配置 III . NDK 函数库打包配置 IV . Java 与 C 代码示例 V . CMake 配置 ( CMakeLists.txt ) VI ...

最新文章

  1. python与excel互通_【好消息】Python和Excel终于可以互通了!!
  2. vue webpack打包入口文件是哪个_Vue项目起步
  3. FM:大熊猫的肠道菌群可能并没有特化出发酵纤维素的能力
  4. 超实用!19条Android平台设计规范
  5. shell:后台运行amp;,日志重定向输出,nohup,grep命令
  6. 网络工程师面试:简要回答一下故障排除的过程?
  7. python英文语义角色标注_八款中文词性标注工具使用及在线测试
  8. Python+Matplotlib+LaTeX玩转数学公式
  9. ibatis与spring的整合
  10. Jquery实用笔记
  11. android+清除循环动画,android - 如何使用ViewPropertyAnimator生成循环动画?
  12. 非对称加密算法之RSA算法实现
  13. mysql分段统计ceil
  14. HTML 纯数字或字母 超出div容器,如果是文字则可正常自动折行
  15. 注册表修改系统显示时间
  16. Redis教程(全面实战教程)
  17. 鸿蒙无锡有什么特产,无锡太湖鼋头渚十大特产
  18. 母牛生小牛java_Java实现:工厂有一头母牛,一年生一头小母牛,小母牛五年后可以生小牛,问20年工厂有多少头牛?...
  19. java实现-现奔跑吧小恐龙-小游戏
  20. 嵌入式Linux应用与开发——内核配置选项含Linux最新版本kernel下载后续操作

热门文章

  1. 人脸识别的三个评测标准
  2. RHEL7/CentOS7 Network Service开机无法启动的解决方法
  3. VC++ 6.0的一些使用技巧---IDE的使用
  4. linux 中文编码环境,linux中文编码问题总结
  5. 学生信息管理系统c 语言程序设计报告,C语言程序设计报告(学生信息管理系统)[1].txt...
  6. java 二维数组对角线_二维数组(矩阵)对角线输出
  7. 我的世界java占用太多内存_Java 进程占用内存过多,幕后元凶原来是线程太多
  8. dba 权限_DBA如何玩转PG用户、角色和权限管理?
  9. linux查看tmp,linux下find(文件查找)命令的用法总结-tmp文件
  10. linux7自动挂载怎么做,CentOS7 Virtual Box 开机自动挂载共享文件夹