本次配置主要参考了vs2017配置tesseract,Tesseract-OCR4.0版本在VS2015上的编译与运行。现对上述配置过程中的一些问题进行说明。
cmake
最开始使用了cmake-gui直接对tesseract的源码进行编译,但是一直报错。而且在power shell中不能运行cmake的命令,所以我又下载了zip版的cmake,添加路径后,在power shell中可以成功运行cmake命令。
tessearct
我是x64平台,所以要运行以下命令:
mkdir build_win64
cd build_win64
cppan ..
cmake .. -G "Visual Studio 15 2017 Win64"
在运行cppan命令时,根据网络状况,可能需要等待。下载和解压完,会回到当前的文件夹,然后再执行cmake的命令。之后再打开生成的工程,然后点“生成”中的“生成解决方案”,其中在改错时要用到“高级保存选项”,但VS2017没有“高级保存选项”,设置方法参考高级保存选项。然后单独再生成“libtesseract”,“tesseract”,之后再单独生成“INSTALL”(这步很重要,之前没做,导致在C盘找不到tesseract的库,这个参考了编译Tesseract),编译成功生成的库如下:
如果在程序中添加了#include<leptonica/allheaders.h>,在运行测试程序时,会报错 :
无法打开包括文件: “endianness.h”: No such file or directory
这是因为编译生成的是endianness.h.in,将.in去掉,打开该头文件:
#if !defined (L_BIG_ENDIAN) && !defined (L_LITTLE_ENDIAN)
# if @APPLE_UNIVERSAL_BUILD@
# ifdef __BIG_ENDIAN__
# define L_BIG_ENDIAN
# else
# define L_LITTLE_ENDIAN
# endif
# else
# define @ENDIANNESS@
# endif
#endif
如果直接编译,会继续报错。要将上述代码改为:
#if !defined (L_BIG_ENDIAN) && !defined (L_LITTLE_ENDIAN)
# if defined (__APPLE_CC__)//@APPLE_UNIVERSAL_BUILD@
# ifdef __BIG_ENDIAN__
# define L_BIG_ENDIAN
# else
# define L_LITTLE_ENDIAN
# endif
# else
# define L_LITTLE_ENDIAN//@ENDIANNESS@
# endif
#endif
编译之后一个就可以直接运行了。TESSDATA_PREFIX变量配置了一天也没成功,一直报错,放弃了!!!草~!!!