【问题标题】:Building Tesseract with Android NDK使用 Android NDK 构建 Tesseract
【发布时间】:2012-09-18 02:45:18
【问题描述】:

我正在关注this 教程为Android 编译this Tesseract(光学字符识别包)的分支。我正在使用 Cygwin 为 Tesseract Android 项目构建 NDK。调用 ndk-build(来自 tess-two 目录)时出现以下错误:

c:/android-ndk-r8b-windows/android-ndk-r8b/toolchains/arm-linux-androideabi-4.6/prebuilt/windows/bin/../lib/gcc/arm-linux-androideabi/4.6.x-google/../../../../arm-linux-androideabi/bin/ld.exe: cannot find ./obj/local/armeabi-v7a/libgnustl_static.a: Permission denied

什么可能导致此错误?附带说明一下,有没有更简单的方法让 Tesseract 在 Android 上启动和运行?

【问题讨论】:

  • 为什么不安装 Ubuntu?今天是2小时的工作。 Cygwin 坏了……
  • 我有点不愿意使用虚拟机。安装 NDK 并使用它构建 Tesseract 后,我​​可以在 Windows 上使用该项目吗?
  • 通过一些 hack 和二进制副本可能是可能的,但绝对不推荐。主要是因为您将在不久的将来最终不得不破解并重建本机部分...我强烈建议您安装本机 Linux 发行版(如果您是初学者,则使用 Ubuntu),或者使用双启动( grub2) 或虚拟机。就我个人而言,我避免使用 VM,因为它们对设备驱动程序进行了黑魔法。例如,usb 很少在 VM 上开箱即用......现在,我的评论没有回答你原来的问题,对此感到抱歉。

标签: android-ndk tesseract


【解决方案1】:

在 Windows 下,以管理员身份运行命令提示符并重试:

搜索->cmd.exe->右键->以管理员身份运行

Cygwin 是不必要的——只需使用 Windows 本身。您可以按照 Tesseract fork 上的 README 构建说明进行操作。您关注的博客使这个过程变得比必要的复杂。

【讨论】:

  • 好提示!不幸的是,我在 Windows 中遇到了同样的错误。我尝试以管理员身份运行 Cygwin 和 cmd.exe,以及将 NDK 的父文件夹的权限设置为完全控制。顺便说一句,如果 NDK 不在您的 PATH 中,如果有人对如何在 Windows(我曾经)上运行它感到困惑,最好的方法是输入 C:\android-ndk-r8b-windows\android-ndk-r8b\ndk-build。与 Linux 中的有点不同。
  • 好吧,没关系,如果我使用ndk-build j8,它会在 Windows 上构建! android update project --path 告诉我有可以更新的子项目,但我在 tess-two 中只看到一个项目。 ant release 似乎工作正常。我将 tess-two 加载到我的 Eclipse 工作区并将其作为库链接到我的应用程序。当我尝试运行我的应用程序时,我最终得到了错误java.lang.UnsatisfiedLinkError: Couldn't load lept: findLibrary returned null
  • 完整的命令是android update project --path .——别忘了结尾.表示当前目录。
  • 啊,谢谢,我实际上做了android update project --path ../tess-two 作为解决方法,但你的方式更干净。无论如何,这不是问题的原因:(
  • 对于像我这样在 NDK 中的新手来说,我们的伙伴提到的正确命令是 ndk-build -j8 ,即使你收到错误 /obj/local/armeabi/libgnustl_static.a: Permission denied 然后使用chmod 777 obj/local/armeabi/libgnustl_static.a 和 ndk-build 再次
【解决方案2】:

首先检查您是否能够在ndk中编译示例。 并“确保”安装了 cygwin。安装或尚未安装软件包时会出现编译问题。早期我使用 tesseract 并没有发现任何问题。

因此,Tesseract OCR 用于将库引用到您的项目。例如,检查 this 。使用测试二,它成功了。

【讨论】:

  • 我尝试为您的示例项目构建 NDK 并收到以下错误:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk。我按照教程建议安装了gcc-core, gcc-g++, make, swig。我尝试以管理员身份运行并使用命令行参数 -j8(在遇到相同错误之前至少编译了更多的东西)。
  • 是的..我遇到了与您的问题类似的问题,但通过将路径从 c:/android-ndk-r8b-windows/android-ndk-r8b/ 更改为 c:/android-ndk-r8b 解决了/ 还根据 ndk 设置您的 mycomp->properties->environmental 构建路径。
  • 更改路径是什么意思?目前,我直接从项目文件夹(../../../../../cygdrive/c/android-ndk-r8b-windows/android-ndk-r8b/ 或一些这样丑陋的东西)。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-17
  • 2013-10-13
相关资源
最近更新 更多