2012-09-18 50 views
3

我正在关注this教程编译this叉安卓的Tesseract(光学字符识别包)。我正在使用Cygwin为Tesseract Android项目构建NDK。当调用ndk-build(来自tess-two目录)时,我收到以下错误:建筑Tesseract与Android NDK

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上运行?

+0

为什么不安装Ubuntu?今天是2小时的工作。 Cygwin坏了... –

+0

我一直不太情愿使用虚拟机。一旦我安装了NDK并使用它构建了Tesseract,那么我可以在Windows上使用该项目吗? –

+1

这可能是一些黑客和二进制副本,但绝对不推荐。主要是因为你最终会在不久的将来必须破解和重建本地部分......我强烈建议你安装原生Linux发行版(Ubuntu,如果你是初学者),或者使用双引导( grub2)或虚拟机。我个人以避免虚拟机,因为他们用设备驱动程序做黑魔法。例如,usb很少在虚拟机上开箱即用......现在,我的评论并没有回答你原来的问题,对此抱歉。 –

回答

3

在Windows下,运行命令提示符作为管理员,然后再试一次:

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

Cygwin的是不必要的 - 只使用Windows本身。您可以按照Tesseract分叉上的README构建说明进行操作。您所关注的博客使流程更加复杂。

+0

好的提示!不幸的是,我在Windows中遇到了同样的错误。我尝试以管理员身份运行Cygwin和cmd.exe,并将NDK的父文件夹的权限设置为完全控制。顺便说一句,如果任何人对如何在Windows上运行此(如果NDK不在PATH中),最好的方法是输入'C:\ android-ndk-r8b-windows \ android-ndk -r8b \ NDK,build'。有点不同于Linux。 –

+2

好吧,没关系,如果我使用'ndk-build j8',它会建立在Windows上! 'android update project --path'告诉我有一些子项目可以更新,但我只在tess-two中看到一个项目。 “蚂蚁释放”似乎工作正常。我将tess-2加载到Eclipse工作区中,并将其作为库链接到我的应用程序。我结束了错误'java.lang.UnsatisfiedLinkError:无法加载lept:findLibrary返回null'当我尝试运行我的应用程序。 –

+0

完整的命令是'android update project --path .' - 不要忘记结尾'.'来表示当前目录。 – rmtheis

0

首先检查您是否能够在ndk中编译样本。 并'确定'cygwin安装..编译问题发生从安装或包尚未安装。早期我与tesseract合作,并没有发现任何问题。

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

+0

我试着为您的示例项目构建NDK,并得到以下错误:'Android NDK:您的APP_BUILD_SCRIPT指向未知文件:。/ jni/Android.mk'。我按照教程的建议安装了'gcc-core,gcc-g ++,make,swig'。我尝试以管理员身份运行,并使用命令行参数-j8(在陷入同样的​​错误之前,至少编译了更多内容)。 –

+0

是啊..我有类似于你的问题,但通过改变路径从C:/ android-ndk-r8b-windows/android-ndk-r8b /到c:/ android-ndk-r8b /也设置你的mycomp->属性 - > ndk环境构建路径。 –

+0

通过改变路径,你的意思是什么?目前,我直接从项目文件夹调用ndk-build(../../../../../cygdrive/c/android-ndk-r8b-windows/android-ndk-r8b/或者其他一些丑陋的事情)。 –