一開始嘗試使用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