1.安裝軟件
安裝完畢后,需要將cmake.exe和cppan.exe加入環境變量PATH中
cmake簡介
CMake全稱為“cross platform make”,是一個開源的跨平台自動化構建系統。使用指定名為CMakeLists.txt的配置文件可以控制軟件的構建、測試和打包等流程。同時,通過編寫平台無關的CMakeLists.txt文件進行簡單的配置,CMake就能生成對應目標平台的構建文件。例如:linux系統的makefile文件、Windows的項目和解決方案(.sln)。
配置包括: 創建哪些項目、項目間的依賴關系、include哪些頭文件、編譯時生成靜態庫,動態庫還是可執行文件、以及生成的版本: (x86,x64)等。
cppan簡介
CPPAN是建立在CMake之上具有構建系統功能的跨平台C / C ++依賴管理器。 它支持快速的腳本式編碼和原型制作以及處理大型項目。 可以很方便的查找、共享和重用庫以及發布您的項目。你只需要將時間花在代碼上,而不需要管理依賴關系。 CPPAN幫您將包裝時間降低至幾秒鍾!它支持簡單的交叉編譯,繼承並且把你自己的設置、標志推送到每個依賴。
CPPAN之於C++就像Maven之於Java。CPPAN可以理解為C++的包管理器,包含了眾多依賴包,只需要向CPPAN指定依賴包,CPPAN就會幫你下載好需要的依賴包和相關配置。
CPPAN通過cppan.yml文件配置相關依賴項目。

通過dependencies指令說明依賴項,這里依賴leptoncia,對應的版本為1,這里1表示1.*.*,也就是主版本為1的都可以。
2. 生成解決方案(.sln)
下載tesseract源碼:
git clone https://github.com/tesseract-ocr/tesseract tesseract
生成x64版本的解決方案
cd tesseract # 進入源代碼目錄 cppan # 下載相關的的依賴,【下載時間可能很長,需要耐心等待】 mkdir win64 && cd win64 cmake .. -G "Visual Studio 14 2015 Win64"
生成x86版本的解決方案
cd tesseract cppan mkdir build && cd build cmake ..
3. 編譯
這里選擇x64版本, 打開win64目錄下的tesseract.sln,這里選擇release模式。選擇”生成" -> "生成解決方案"

編譯過程中會遇到很多錯誤,如C2001和C3668,如圖:


g_set_error (error, G_KEY_FILE_ERROR, G_KEY_FILE_ERROR_UNKNOWN_ENCODING, _("Key file contains unsupported " "encoding “%s”"), value_utf8); # 上面代碼中出現了中文雙引號
錯誤的原因:
其實都是文件編碼問題。下載得到的文件編碼為UTF-8(不帶簽名),而Visual Studio (中文版)默認保存的文本文件是GB2312編碼,對於UTF-8編碼的某些字符,在中文版VS下就容易因解碼錯誤導致亂碼造成編譯錯誤。
解決方法: 只需要雙擊對應的錯誤,跳轉到對應的文件,然后點擊左上角菜單 “文件選項" 下的"高級保存選項",選擇unicode(utf-8帶簽名).保存后再“生成"即可。
需要修改的文件:

UTF-8 帶簽名或者UTF-8 無簽名區別:
帶簽名比無簽名開頭多了BOM 信息,UTF-8 的 BOM 是 0xEFBBBF,帶簽名的將更容易被解析器以正確的編碼方式進行解析。
建議:
先"生成”項目"cppan-d-b-d", 再“生成"整個解決方案
遇到錯誤,雙擊錯誤,進入錯誤提示行后,點擊左上角菜單 “文件"下的"高級保存選項",選擇unicode(utf-8帶簽名).保存后右擊項目選擇"生成",逐個解決錯誤。
效果:

4.安裝
找到CMakeTargets中的INSTALL,然后右鍵選擇僅限於項目–>僅生成INSTALL

此外, 還需要將win64\bin\Release目錄下的dll拷貝到install\bin目錄下
64位默認安裝位置為C:/Program Files/tesseract,因此安裝需要管理員權限
錯誤提示如下:


修改程序安裝位置
# 通過指定CMAKE_INSTALL_PREFIX設置安裝目錄 cmake -D CMAKE_INSTALL_PREFIX=D:/tesseract/install -G "Visual Studio 14 2015 Win64" ..

打開解決方案所在目錄下的CMakeCache.txt, 查看CMAKE_INSTALL_PREFIX 配置修改是否生效。
5. 環境變量配置
- 將tesseract.exe所在路徑加入環境變量PATH中
- 添加環境變量TESSDATA_PREFIX,其值為tessdata目錄所在路徑
訓練文件下載下載地址: https://github.com/tesseract-ocr/tessdata

沒有設置TESSDATA_PREFIX,在命令行使用tesseract會出現如下提示:

參考: https://github.com/tesseract-ocr/tesseract/wiki/Compiling#windows
