文章目录

去年时候使用了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目录下创建includelib文件夹,在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的更多相关文章

  1. 关于Visual Studio 2013 编译 multi-byte character set MFC程序出现 MSB8031 错误的解决办法

    转自:http://blog.csdn.net/xiaochunzao/article/details/16987703 Visual Studio 2013 编译旧的 multi-byte char ...

  2. Visual Studio 2013 编译 64 位 Python 的 C 扩展 (使用 PyObject 包装)

    对于 32 位 Python 的 C 扩展,以前用过 mingW32 编译, 但是 mingW32 不支持 64 位 Python 的 C 扩展编译,详情可见 stackoverflow,这位前辈的大 ...

  3. Windows下Visual Studio 2013编译Lua 5.2.3

    1.创建一个Visual C++的Empty Project,如果需要支持Windows XP将Platform Toolset设置为Visual Studio 2013 - Windows XP ( ...

  4. Visual Studio 2013 编译CEF步骤

    If you'd like to build the Chromium Embedded Framework (a wrapper for Chromium, for creating browser ...

  5. Visual Studio 2013编译Mozilla NPAPI 示例注意事项

    1.Platform Toolset设置Visual Studio 2013 - Windows XP (v120_xp). 2.Character Set设置Use Multi-Byte Chara ...

  6. Windows下Visual studio 2013 编译 Audacity

    编译的Audacity版本为2.1.2,由于实在windows下编译,其源代码可以从Github上取得 git clone https://github.com/audacity/audacity. ...

  7. 解决visual studio 2013编译过程中存在的无法打开kernel.lib问题

    1. 出现此类问题的原因 由于原visual studio文件中的安装中出现问题,所以原有的SDK(soft development kits)文件出现缺失: 2. 解决方法1 重新下载SDK工具,安 ...

  8. isual Studio 2013编译ImageMagick---转

    “该文引用自 CruiseYoung的:Visual Studio 2013编译ImageMagick http://blog.csdn.net/fksec/article/details/36008 ...

  9. Visual Studio 2013环境下操作vc6/vc7/vc8等低版本平台项目【编译|生成|调试】

    现代化的开发环境,微软一直在推出更新换代,我们所处的技术环境在日新月异的变化:不过在中国多数人们一边疲惫的追赶着时代的步伐,一边坚守着自己所获悉所掌握的那些紧吧吧的知本.对技术工具的掌握并非他们所想要 ...

随机推荐

  1. Tooltips

    #include<windows.h> #include<Commctrl.h> #include"resource.h" #pragma comment( ...

  2. CaptchaCodeManager

    package org.linlinjava.litemall.wx.service; import org.linlinjava.litemall.wx.dto.CaptchaItem; impor ...

  3. 发布订阅--SQLServer复制需要有实际的服务器名称才能连接到服务器,请指定实际的服务器名

    最近在学习SQL SERVER的高级复制技术的时候,遇到一个小问题,就是用本地SQL SERVER连接服务器的数据库时,在查看复制功能的发布服务器时,连接不上,弹出一个错误提示框架,如下: 原来在自己 ...

  4. day56-mysql-其他查询-面试题-重点

    一.重点 面试题 1. 临时表查询: -- 查询高于本部门平均工资的人员 #1.先查询部门人员的平均工资 SELECT dept_id,AVG(salary)as sal from person GR ...

  5. Halcon系列(1) 菜鸟入门

    官方网站怎么使用HDevelop  :https://www.mvtec.com/products/halcon/halcon-tour

  6. iOS之NSString类型为什么要用copy修饰

    在开发的过程中,只知道NSString类型最好用copy修饰而不能用strong,但是不知道为什么,今天了解了下,总算搞明白了. 如下所示,当修饰符为copy时,因为NSMutableString是N ...

  7. 编译原理_P1004

    龙书相关知识点总结 //*************************引论***********************************// 1. 编译器(compiler):从一中语言( ...

  8. android流式布局、待办事项应用、贝塞尔曲线、MVP+Rxjava+Retrofit、艺术图片应用等源码

    Android精选源码 android模仿淘宝首页效果源码 一款艺术图片应用,采用T-MVVM打造 Android MVP + RxJava + Retrofit项目 android流式布局实现热门标 ...

  9. Redis实现高并发分布式锁

    分布式锁场景在分布式环境下多个操作需要以原子的方式执行首先启一个springboot项目,再引入redis依赖包: <!-- https://mvnrepository.com/artifa . ...

  10. 使用这些高效Java工具类享受开发乐趣

    使用这些高效Java工具类享受开发乐趣导语在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.在开发中,使用这些工具类,不仅可以提高编码效率,还可以提高 ...