安裝完畢後,須要將cmake.exe和cppan.exe加入環境變量PATH中linux
CMake全稱爲「cross platform make」,是一個開源的跨平臺自動化構建系統。使用指定名爲CMakeLists.txt的配置文件能夠控制軟件的構建、測試和打包等流程。同時,經過編寫平臺無關的CMakeLists.txt文件進行簡單的配置,CMake就能生成對應目標平臺的構建文件。例如:linux系統的makefile文件、Windows的項目和解決方案(.sln)。git
配置包括: 建立哪些項目、項目間的依賴關係、include哪些頭文件、編譯時生成靜態庫,動態庫仍是可執行文件、以及生成的版本: (x86,x64)等。github
CPPAN是創建在CMake之上具備構建系統功能的跨平臺C / C ++依賴管理器。 它支持快速的腳本式編碼和原型製做以及處理大型項目。 能夠很方便的查找、共享和重用庫以及發佈您的項目。你只須要將時間花在代碼上,而不須要管理依賴關係。 CPPAN幫您將包裝時間下降至幾秒鐘!它支持簡單的交叉編譯,繼承而且把你本身的設置、標誌推送到每一個依賴。windows
CPPAN之於C++就像Maven之於Java。CPPAN能夠理解爲C++的包管理器,包含了衆多依賴包,只須要向CPPAN指定依賴包,CPPAN就會幫你下載好須要的依賴包和相關配置。測試
CPPAN經過cppan.yml文件配置相關依賴項目。ui
經過dependencies指令說明依賴項,這裏依賴leptoncia,對應的版本爲1,這裏1表示1.*.*,也就是主版本爲1的均可以。編碼
cppan簡單使用spa
下載tesseract源碼:命令行
git clone https://github.com/tesseract-ocr/tesseract tesseract
生成x64版本的解決方案3d
cd tesseract # 進入源代碼目錄 cppan # 下載相關的的依賴,【下載時間可能很長,須要耐心等待】 mkdir win64 && cd win64 cmake .. -G "Visual Studio 14 2015 Win64"
生成x86版本的解決方案
cd tesseract cppan mkdir build && cd build cmake ..
這裏選擇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帶簽名).保存後再「生成"便可。
須要修改的文件:
帶簽名比無簽名開頭多了BOM 信息,UTF-8 的 BOM 是 0xEFBBBF,帶簽名的將更容易被解析器以正確的編碼方式進行解析。
先"生成」項目"cppan-d-b-d", 再「生成"整個解決方案
遇到錯誤,雙擊錯誤,進入錯誤提示行後,點擊左上角菜單 「文件"下的"高級保存選項",選擇unicode(utf-8帶簽名).保存後右擊項目選擇"生成",逐個解決錯誤。
效果:
找到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 配置修改是否生效。
訓練文件下載下載地址: https://github.com/tesseract-ocr/tessdata
沒有設置TESSDATA_PREFIX,在命令行使用tesseract會出現以下提示:
參考: https://github.com/tesseract-ocr/tesseract/wiki/Compiling#windows