【问题标题】:Custom Compiling Tesseract-ocr (4.0) on Windows在 Windows 上自定义编译 Tesseract-ocr (4.0)
【发布时间】:2018-11-28 13:55:03
【问题描述】:

拼命地试图在有一些限制的 Windows 机器上编译 Tesseract-ocr (4.0)。

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

问题:

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

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

我尝试过的事情:

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

适用于 Linux 的东西:

  • 针对自定义编译的 Leptonica 修改 PKGConfig 的 Autoconf(--with-extra-libraries PKG_CONFIG_PATH CPPFLAGS LDFLAGS)

我没有尝试过的事情:

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

可能的解决方案

  • MinGW (Windows) 和 pkg-config autoconf-archive
  • 告诉 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 REQUIRED)。通过稍微看一下,我(也许)能够使用 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)

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

【问题讨论】:

  • 欢迎来到 Stack Overflow!虽然您详细描述了您的问题领域,但您的问题似乎“过于宽泛”:您向我们询问可能的方法,但是,我,任何建议的方法可以工作。你没有让其中任何一个工作......但你没有描述问题的细节。例如,“我尝试过的事情:......告诉 CMake 在其他地方搜索 3rdparty 的各种方式”。您究竟尝试过什么?您遇到了什么确切问题(例如错误消息)?
  • KDE Craft 是一个准备编译环境的系统,并具有用于构建大量包的配方(称为蓝图)。在此基础上构建可能是有意义的。至少您可以毫无问题地找到第 3 方包,并且它们已经出现在 Craft 的蓝图树中。
  • @Tsyvarev 好的。我试图编辑我最初的问题以获得详细的答复。谢谢
  • @arrowd 我查看了它,但我认为它不符合我的先决条件“我们已经将大多数 3rd 方库用于代码的其他部分:编译不能重新编译它们”。谢谢你的建议。

标签: windows cmake compilation mingw tesseract


【解决方案1】:

使用MSYSMinGW 在Windows 上编译tesseract-4.0.0

先决条件

打开开始菜单 > 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 64bit > MSYS2 MinGW 32-bit 并运行以下命令:

$ 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 64bit > MSYS2 MinGW 64-bit 并运行以下命令:

$ 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

【讨论】:

  • 我不得不运行 pacman -S base-devel gcc vim cmake 因为 configure.sh 抱怨 gcc 和 g++ 等没有安装。但现在我得到configure: error: Leptonica 1.74 or higher is required. Try to install libleptonica-dev package
猜你喜欢
  • 2011-11-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-21
  • 1970-01-01
相关资源
最近更新 更多