一开始尝试使用mingw+msys编译tesseract, 但是苦于mingw-get安装的软件版本都太旧,要安装新版本只能下载源码编译安装。
在编译过程中遇到了很多麻烦,最后还遇到了包直接循环依赖问题(glib和pkg-config),最终只能作罢。
1. 下载安装mysy2
安装后打开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