使用Android NDK构建Tesseract

3
我正在按照这个教程编译Tesseract(一个光学字符识别软件包)的Android分支。我现在进行到使用Cygwin来构建Tesseract Android项目的NDK步骤。但是,当我从tess-two目录中调用ndk-build时,我遇到了以下错误:
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

这个错误的原因是什么?另外,有没有更简单的方法在Android上运行Tesseract?

为什么不安装Ubuntu呢?今天只需2个小时就可以完成。Cygwin出故障了... - m-ric
我一直有点不愿意使用虚拟机。一旦我安装了NDK并使用它构建了Tesseract,那么我是否可以在Windows上处理该项目? - 1''
1
可能通过一些黑客技巧和二进制复制实现,但绝对不建议这样做。主要是因为你最终会进入一个需要黑客和重建本机部分的未来......我强烈建议你安装本地的Linux发行版(如果你是初学者,可以选择Ubuntu),可以使用双启动(grub2)或虚拟机。我个人避免使用虚拟机,因为它们会使用设备驱动程序进行黑魔法。例如,usb在虚拟机上很少能够直接使用...现在,我的评论并没有回答你的原始问题,对此我感到抱歉。 - m-ric
2个回答

3
在Windows下,以管理员身份运行命令提示符并重试:
搜索->cmd.exe->右键单击->以管理员身份运行
不需要使用Cygwin-只需使用Windows本身。您可以按照Tesseract分支上的README构建说明进行操作。您正在关注的博客使该过程变得比必要复杂。

不错的建议!不幸的是,在Windows中我也遇到了同样的错误。我尝试以管理员身份运行Cygwin和cmd.exe,并将NDK的父文件夹权限设置为完全控制。顺便说一下,如果有人不清楚如何在Windows上运行此命令(我曾经也不清楚),那么如果NDK没有在您的PATH中,最好的方法是键入C:\ android-ndk-r8b-windows\android-ndk-r8b\ndk-build。与Linux略有不同。 - 1''
2
好的,没关系,如果我使用 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 - 1''
完整的命令是 android update project --path . -- 不要忘记结尾的 . 表示当前目录。 - rmtheis
啊,谢谢,我实际上已经使用了 android update project --path ../tess-two 作为解决方法,但你的方法更干净。无论如何,那不是问题的原因 :( - 1''
1
对于像我这样的NDK新手,我们的朋友提到的正确命令是ndk-build -j8,即使如此,如果你收到错误信息/obj/local/armeabi/libgnustl_static.a: Permission denied,那么请使用chmod 777 obj/local/armeabi/libgnustl_static.a,然后再次运行ndk-build。 - Sourab Sharma

0

首先检查您是否能够编译ndk中的示例。并确保已安装cygwin。编译问题可能是由于安装或尚未安装的软件包引起的。我之前使用过tesseract,并没有发现任何问题。

因此,Tesseract OCR用于将库引用到您的项目中。例如,请参考this。使用test-two,它可以正常工作。


我尝试为您的示例项目构建NDK,但出现以下错误:Android NDK: Your APP_BUILD_SCRIPT points to an unknown file: ./jni/Android.mk。如教程所建议,我已安装了gcc-core、gcc-g++、make、swig。我尝试以管理员身份运行并使用命令行参数-j8(在相同错误处卡住之前至少编译了更多的东西)。 - 1''
是的,我遇到了类似的问题,但通过将路径从c:/android-ndk-r8b-windows/android-ndk-r8b/更改为c:/android-ndk-r8b/并根据ndk设置您的mycomp->属性->环境构建路径来解决。 - arshad kr
改变路径是什么意思?目前,我直接从项目文件夹(../../../../../cygdrive/c/android-ndk-r8b-windows/android-ndk-r8b/或类似的丑陋路径)调用ndk-build。 - 1''

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接