研究Tesseract也有幾個星期了 走了一些彎路 網上有非常多VS2010的配置心得 但沒有VS2013的, 找到一篇之后, 又發現會有一些小問題, 這里記錄下來, 也為新人提供一些幫助.
還是先說下Tesseract庫的依賴架構:
有了這個庫的依賴關系, 就能夠說下自己配置VS2013版本號的目的了:
a. 因為網上現有的都是現編譯好的GIF, JPEG,PNG,TIFF,ZLIB庫的DLL_DEBUG版本號的Binaries. 操作起來非常不方便, 若自己想用LibTesseract和Leptonica Lib生成一個DLL給exe調用, 因為底層是動態鏈接庫, 則必須帶上LibTesseract.lib, LibTesseract.dll, LibLeptonica.lib, LibLeptonica.dll, 顯得累贅.所以將底層編譯成靜態庫, 是我的目標. 另一個理由就是Release版本號的編譯, 也須要源代碼.
b. 因為找不到(或者不太好找)這些庫VS2010版本號的project, 想自己編譯這些庫的源碼,編譯成想用的靜態庫版本號則非常麻煩.
當我在尋找這個解決方式的時候, 無意發現以下這種方法自帶了這些圖像庫的編譯project,並且還是VS2013版本號的, 省了非常多事
配置VS2013的詳細方法, 請參考:http://vorba.ch/2014/tesseract-3.03-vs2013.html
1) 安裝好 SlickSVN 后, cmd下並不能直接調用:
"git clone git://github.com/pvorb/tesseract-vs2013.git"
須要你在git命令行下調用, 所以你記得裝下git
2)調用"msbuild build.proj"的時候, 可能會出現錯誤(不一定), 臨時解決方法是:
changed all "l_int32" to "int" in "liblept\src\boxfunc1.c"&"liblept\src\utils.c"
3)Build Tesseract的時候, 在cmd下輸入
"svn checkout http://tesseract-ocr.googlecode.com/svn/trunk/ tesseract-ocr"會出錯,原因是被GFW牆了, 所以記得翻牆(VPN)
4)調用Tesseract庫(libtesseract304.dll)的時候會出現錯誤, 須要使用"strcpy"類函數的安全函數"strcpy_s",
改動"Project Property - Configuration Property - C/C++ - General - SDL checks" 為"NO(/sdl-)"就可以
5)調用"libtesseract304.dll"的時候所需的"Tesseract"頭文件跟v2008相比, 沒有最新的.py文件幫忙copy了,
有2個方法:第一種: 土辦法, 一個一個找吧, 看"tesseract.exe"所依賴的頭文件就可以, 一個一個手動加入吧, 也沒多少
另外一種: "Tesseract-Build/tesseract-ocr/vs2008/doc/maintenance.html"下
有個"Updating the VS2008 directory for new releases of Tesseract-OCR"的方法
又一次寫個.py也不錯.
6)調用Tesseract庫的時候你若想自己主動匹配Leptonica和Tesseract庫的版本, 則記得加入".prop"配置到project,
位置在:"Tesseract-Build\tesseract-ocr\vs2010\include"這樣, 你僅僅須要在link里, 指定"liblept$(LIBLEPT_VERSION)d.lib"和"libtesseract$(LIBTESS_VERSION)d.lib"即可了.