在没有得到tesslib和leptonlib的情况下构建android tesseract-android-tools库

时间:2012-06-13 14:55:57

标签: android ocr tesseract

我正在开发OCR Android应用程序,但我在使用Tesseract-ocr库时遇到很多问题。我已经按照README文件中包含的每一步来构建库,但我只是编译了libjpeg.so: - (

现在,我要解释我所采取的每一步,这样可以帮助你了解我做错了什么

我没有遇到问题:

cd <project-directory>
mkdir external; cd external
wget http://tesseract-ocr.googlecode.com/files/tesseract-3.00.tar.gz
tar -zxvf tesseract-3.00.tar.gz
rm -f tesseract-3.00.tar.gz
wget http://leptonica.googlecode.com/files/leptonlib-1.66.tar.gz
tar -zxvf leptonlib-1.66.tar.gz
rm -f leptonlib-1.66.tar.gz

运行时:

git clone git://android.git.kernel.org/platform/external/jpeg.git libjpeg

我明白了:

Cloning into 'libjpeg'...
fatal: unable to connect to android.git.kernel.org:
android.git.kernel.org[0: 149.20.4.77]: errno=Connection timed out

要解决它,我使用镜像并运行:

git clone git:https://github.com/android/platform_external_jpeg libjpeg

好的,似乎有效。我明白了:

Cloning into 'libjpeg'...
remote: Counting objects: 324, done.
remote: Compressing objects: 100% (229/229), done.
remote: Total 324 (delta 142), reused 269 (delta 93)
Receiving objects: 100% (324/324), 756.37 KiB | 412 KiB/s, done.
Resolving deltas: 100% (142/142), done.

跑步时没问题:

cd libjpeg
git checkout e0eadaa39b72e33f032220246c771d7302ebeaf8
cd ..
export TESSERACT_PATH=${PWD}/tesseract-3.00
export LEPTONICA_PATH=${PWD}/leptonlib-1.66
export LIBJPEG_PATH=${PWD}/libjpeg
cd ..

但是,在运行ndk-build之后我收到一个错误:

/cygdrive/c/Android_NDK/build/core/build-local.mk:40: build/core/init.mk: No such file or directory
/cygdrive/c/Android_NDK/build/core/build-local.mk:122: *** falta un `endif'.  Alto.

falta un`endif'.Alto。”表示“缺少'endif'。停止。

好的,我在这里使用了tesseract项目中的Android.mk,并引入了一些小改动,使其适应我的项目目录。 [这里是] [4]

现在我跑

ndk-build 

我只得到

库/ armeabi / libjpg.so

我认为这是因为Android.mk需要添加下一行:

include $(call all-subdir-makefiles) $(TESSERACT_PATH)/Android.mk
include $(call all-subdir-makefiles) $(LEPTONICA_PATH)/Android.mk

我这样做了,因为在LEPTONICA_PATH和TESSERACT_PATH中没有Android.mk文件,我从tesseract-android-tools项目中获取它们 - 正如我之前所做的那样:

  • [tesseract的Android.mk] [5],
  • leptonica的Android.mk]

然后我执行

C:\tesseract\jni>ndk-build
C:/Android_NDK/build/core/build-binary.mk:240: *** target pattern contains no `%'.  Stop.

然后我卡住了。我试图解决,所以我尝试了一些东西(其中,我在stackoverflow找到的一些建议),但没有一个解决了问题。

我给了你每一个细节,这样你就可以更容易地找到我正在犯的错误。

(啊!我在WinXP + Cygwin上)

提前致谢

1 个答案:

答案 0 :(得分:3)

我实际上遇到了同样的问题。我最终对make文件甚至库中的一些C代码进行了很多更改,但只能从中获得有限的功能。我建议使用这个tess-two库。我能够毫无问题地编译它。但是,我最终在Ubuntu执行此操作之前切换。试一试。希望这有帮助!