Win10 使用MinGW-w64编译Tesseract4.0

末鹿安然 提交于 2020-12-05 07:54:18

一开始尝试使用mingw+msys编译tesseract, 但是苦于mingw-get安装的软件版本都太旧,要安装新版本只能下载源码编译安装。

在编译过程中遇到了很多麻烦,最后还遇到了包直接循环依赖问题(glib和pkg-config),最终只能作罢。

1. 下载安装mysy2

地址: https://www.msys2.org/

安装后打开msys2.exe, 务必要先更新软件包数据库和核心系统包(很重要),否则在安装tesseract过程中出现莫名奇妙的问题。

pacman -Syu
# -y, --refresh 从服务器下载新的软件包数据库 (-yy 强制更新软件包数据库) # -u, --sysupgrade 升级所有已安装的软件包 (-uu 可启用降级)

2. 更新软件源

默认的MSYS2 源升级软件或是安装新软件的较慢,这里为了提高速度使用中科大的源

编辑 /etc/pacman.d/mirrorlist.mingw32 ,在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/i686

编辑 /etc/pacman.d/mirrorlist.mingw64 ,在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/mingw/x86_64

编辑 /etc/pacman.d/mirrorlist.msys ,在文件开头添加:

Server = http://mirrors.ustc.edu.cn/msys2/msys/$arch
# 刷新软件包数据
pacman -Sy

3. 环境搭建

pacman -S base-devel
pacman -S automake autoconf make mingw-w64-i686-gcc mingw-w64-i686-gdb mingw-w64-i686-SDL mingw-w64-i686-SDL_ttf mingw-w64-i686-make
pacman -S autoconf-archive libtool pkg-config
pacman -S icu-devel  mingw-w64-i686-pango mingw-w64-i686-cairo


# 选择安装(optional)
pacman -S msys2-devel
pacman -S mingw-w64-i686-toolchain

4. 安装Tesseract4.0

目前使用pcman直接安装的Tesseract版本为3.0.5

tesseract安装依赖leptonica,而leptonica又依赖libgif、libjpeg、libpng、libtiff、zlib、libwebp、libopenjp2、xz等库。

# 安装leptonica
pacman -S mingw-w64-i686-leptonica

# 安装git 
pacman -S git

# 下载tesserat4.0源码
git clone https://github.com/tesseract-ocr/tesseract.git tesseract-ocr

# autogen.sh的作用也是检测你的编译工具和依赖关系包是否完整
./autogen.sh
./configure --enable-debug
make -j4 
make install

如果安装tesseract3.0.5,只需要:

# 安装
pacman -S mingw-w64-i686-tesseract-ocr

# 卸载
pacman -S mingw-w64-i686-tesseract-ocr

5. 遇到的错误

1)

pacman -S mpfr

2)

尝试更新软件包:

pacman -Syu

6. 测试:

如果想要在windows的命令行中也是可以使用tesseract,将tesseract.exe拷贝到其他目录,然后双击运行,这时肯定会报错

根据提示拷贝对应的dll到当前tesseract.exe所在目录即可。

效果:

参考:

https://github.com/mangband/mangband/wiki/MSYS2

https://github.com/tesseract-ocr/tesseract/wiki

https://github.com/tesseract-ocr/tesseract/wiki/Compiling

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!