Windows上的自定义编译Tesseract-ocr(4.0)

时间:2018-06-19 14:42:30

标签: windows cmake compilation mingw tesseract

我正拼命试图在Windows计算机上以某些限制编译Tesseract-ocr(4.0)。

  • 我们正在做多平台的工作:必须有可能自动编译(命令行)
  • 我们正在使用特定的第三方库:编译必须接受其大多数依赖项的自定义路径/库
  • 我们已经将大多数第三方库用于代码的其他部分:编译不得重新编译它们(因此,没有cppan)
  • Leptonica是使用我们特殊的3rdparty(ZLib,LibPng ..)构建的
  • 我们的项目必须在这些特定的3rdparty旁边“包含” tesseract

问题:

我在为Tesseract指定自定义路径时遇到了很大的问题。 在Unix(CentOS,Ubuntu 16/18,Debian 8/9 ..)下,我能够使用 autogen autoconf autoheaders 工具来实现自己的目标。 strong> pkg-config

在Windows下,autoconf-archive和pkg-config不可用(根据我的尝试);使autoconf无法使用。 我既无法使用CMake进行编译,也无法为Leptonica指定自定义路径(即使在为Leptonica编写新的pkgconfig之后)。

我尝试过的事情:

  • 使用MinGW和autoconf
  • 手动安装pkg-config
  • 使用autoconf-archive .m4作弊到aclocal
  • 使用cppan创建一个VisualStudio项目并对其进行修改
  • 告诉CMake在其他地方搜索3rdparty的各种方法

在Linux上有效的东西:

  • 带有经过修改的PKGConfig的Autoconf,用于定制编译的Leptonica(-带额外的库PKG_CONFIG_PATH CPPFLAGS LDFLAGS)

我没有尝试过的事情:

  • 在机器上安装Leptonica(此处不是重点)
  • 重写CMakeFiles
  • 未知的解决方案?

可能的解决方案

  • 具有pkg-config autoconf-archive的MinGW(Windows)
  • 告诉CMake Leptonica自定义路径的未知方法
  • 没有cppan的VisualStudio项目
  • 您吗?

感谢您的关注。

编辑1

通过尝试各种手动安装pkg-config的方法,Autoconf似乎没有意识到它的存在。该错误与pkg-config缺少软件包(How to install pkg config in windows?)有关。

CPPAN是Visual Studio项目的重要组成部分,我看不出如何将它们分开。

我通常告诉configure寻找带有参数--with-extra-libraries和PKG_CONFIG_PATH的leptonica软件包。 但是,CMake使用“宏” find_package(需要Leptonica $ PATH CONFIG)。通过稍微看一下,我可以(也许)使用CMAKE_PREFIX_PATH,CMAKE_MODULE_PATH,Leptonica_DIR指定其路径。由于缺少配置文件(LeptonicaConfig.cmake或leptonica-config.cmake),编译仍未成功。

构建后,我将这些变量指向了leptonica文件夹的各个文件夹。 有关信息,我构建了Leptonica及其配置如下:

bash configure --enable-shared=false --without-giflib --without-libwebp --without-libopenjpeg LDFLAGS="-LPATH/TO/ZLIB -LPATH/TO/LIBPNG .." CPPFLAGS="-IPATH/TO/ZLIB/INCLUDE ..."

但是,我无法找到这些文件(同时在LeptonicaDir / cmake / template下看到LeptonicaConfig.cmake.in)

我希望我回答了你的问题。请告诉我您是否需要更多详细信息。

1 个答案:

答案 0 :(得分:0)

要在Windows上使用tesseract-4.0.0MSYS编译MinGW

先决条件

打开开始菜单> MSYS2 64bit> MSYS2 MSYS ,然后运行以下命令:

$ pacman -Syu
#### Close terminal window and open it again (MSYS2 MSYS) ###
$ pacman -Su
$ pacman -S base-devel
$ pacman -S mingw-w64-i686-toolchain
$ pacman -S mingw-w64-x86_64-toolchain
$ pacman -S mingw-w64-i686-cmake
$ pacman -S mingw-w64-x86_64-cmake

32位编译

打开开始菜单> MSYS2 64位> MSYS2 MinGW 32位,然后运行以下命令:

$ cd /home/tesseract/tesseract-4.0.0
$ pacman -S mingw-w64-i686-leptonica
$ ./autogen.sh
$ ./configure --prefix=/home/tesseract/install/windows-i686
$ make -j4
$ make install

64位编译

打开“开始”菜单>“ MSYS2 64位”>“ MSYS2 MinGW 64位” ,然后运行以下命令:

$ cd /home/tesseract/tesseract-4.0.0
$ pacman -S mingw-w64-x86_64-leptonica
$ ./autogen.sh
$ ./configure --prefix=/home/tesseract/install/windows-x86_64
$ make -j4
$ make install

编译后的tesseract将安装在:C:/ msys64 / home / tesseract / install