Visual Studio 2013编译Tesseract 3.04
Posted lijianming180
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Visual Studio 2013编译Tesseract 3.04相关的知识,希望对你有一定的参考价值。
去年时候使用了VS2008编译了Tesseract 3.02版本,主要是参考了一份官方文档,但是对于目前的最新版本并没有给出说明。
本文主要参考了Paul Vorbach的How to build Tesseract 3.03 with Visual Studio 2013,在翻译的同时,加上自己的一些经验总结。
编译新版本最大问题在于新版本的Tesseract依赖新版的Leptonica库,后者是一个开源的C语言图像处理包。新版本的Leptonica需要新版的zlib,libpng,libtiff,libjepg和giflib这些库。在Leptonica的官网上只给出了Leptonica 1.68版本的VS2008编译工程(果然还是要掌握点Linux下的开发技巧:D)。那么你需要做的就是需要把新版的Leptonica编译成需要的lib文件及dll提供Tesseract调用,这无疑是一份枯燥繁琐的事。
很幸运的是在GitHub上已经有一个Visual Studio的工程文件包含了所有Tesseract 3.03依赖的文件。charlesw/tesseract-vs2012。这个工程Paul编译后发现了一些错误,然后又fork了一份:tesseract-vs2013。
下面是使用Visual Studio 2013编译Tesseract 3.04的所有步骤。
前序工作
1.安装Git。(实际上你可以根据自己习惯直接从GitHub网页上下载源码)。
2.安装SVN,比如SlickSVN
3.安装Visual Studio 2013 for Windows Desktop。
编译Leptonica 1.71
1.创建用来编译Tesseract的目录。这里我们假设是C:Tesseract-Build
大专栏 Visual Studio 2013编译Tesseract 3.04.
2.打开cmd命令,改变路径:cd Tesseract-Build
3.从GitHub上拷贝依赖文件到当前目录:git clone git://github.com/pvorb/tesseract-vs2013.git
4.打开tesseract-vs2013目录下的工程文件进行编译,注意需要在DLL_Ddebug, DLL_Release, LIB_Debug, LIB_Release每个Solution Configuration下都Build一次。这样编译后得到的lib和dll就是Tesseract所依赖的文件了。
编译Tesseract
1.确保当前路径仍然是C:Tesseract-Build
。
2.从SVN上获取最新版Tesseract源码:svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr
3.把路径改成新检出的源码下:cd tesseract-ocr
4.利用tesseract-vs2013目录下的patch文件:svn patch ..tesseract-vs2013vs2013+64bit_support.patch
到这里如果都没有问题,那真的要恭喜你!事实上你极有可能在步骤2利用svn导入源码时候就出错了,这时候你首先要感谢下政府,然后你可以从GitHub上直接下载源码包(Tesseract工程已经转移到GitHub上了),得到源码把它拷贝在tesseract-ocr
目录下。由于你不是从SVN上导入,所以步骤4就会报错。这时候你就需要手动配置依赖文件,具体过程是这样的:
1)在Tesseract-Build
目录下创建include
lib
文件夹,在include
文件夹拷贝C:Tesseract-Buildtesseract-vs2013
目录下的一些头文件,包括所有Leptonica的头文件及部分其他库的头文件:
2)将上面步骤编译得到的lib文件及dll文件拷贝到lib
目录下:
3)用VS2013打开C:Tesseract-Buildtesseractvs2010
目录下的工程,就能够成功编译。如果出现error C2146的错误,需要选择vs2013的菜单“File – Advanced Save Options”中设置Encoding为Chinese Simplified,保存后重新编译。
End
这个月啥都没写,姑且拿这个凑个数吧。
以上是关于Visual Studio 2013编译Tesseract 3.04的主要内容,如果未能解决你的问题,请参考以下文章
面向 XP 的 Visual Studio 2013 的 Visual C++ 编译器标志
在 Visual Studio 2013 中使用 Roslyn 编译器
使用 Visual Studio Express 2013 进行 64 位编译