菜单

构建与部署

相关源文件

本文档提供了有关如何从源代码构建 Tesseract OCR 并将其部署到不同平台的全面指南。它涵盖了 Tesseract 支持的各种构建系统、必需的依赖项、特定于平台的注意事项以及如何构建主库和训练工具。

有关训练 Tesseract OCR 模型的信息,请参阅 训练。有关 API 用法信息,请参阅 API 参考

构建系统概述

Tesseract OCR 支持三种不同的构建系统,每种系统在不同环境中都有其独特的优势。

来源: CMakeLists.txt1-46 configure.ac1-87 Makefile.am1-12 sw.cpp1-25

构建系统优点缺点最佳用途
Autotools对 Unix 的原生支持,成熟在 Windows 上很复杂,需要额外的工具Unix/Linux, macOS
CMake跨平台,良好的 IDE 支持需要 CMake 知识所有平台,尤其是 Windows
SW简化的 Windows 构建不太成熟,平台支持有限Windows 开发

先决条件和依赖

核心依赖项

来源: CMakeLists.txt384-467 configure.ac497-550

开发要求

  • 兼容 C++17 的编译器(如果可用,则使用 C++20)
  • 构建工具:make、pkg-config(用于 autotools)、cmake(用于 CMake 构建)
  • Git(用于获取源代码)

来源: CMakeLists.txt126-137 configure.ac390-417

使用 Autotools 构建

设置和配置

有用的配置选项

选项描述
--prefix=/path安装目录前缀
--disable-graphics禁用 ScrollView 调试
--disable-legacy禁用旧版 OCR 引擎
--disable-float32使用双精度而不是单精度进行 LSTM
--with-extra-includes=/path其他包含目录
--with-extra-libraries=/path其他库目录

来源: configure.ac252-276

构建和安装

构建训练工具

来源: configure.ac571-606

使用 CMake 构建

设置和配置

有用的 CMake 选项

选项默认描述
BUILD_TRAINING_TOOLSON构建训练工具
BUILD_TESTSOFF构建测试
OPENMP_BUILDOFF使用 OpenMP 支持构建
GRAPHICS_DISABLEDOFF禁用 ScrollView 调试
DISABLED_LEGACY_ENGINEOFF禁用旧版 OCR 引擎
ENABLE_LTOOFF启用链接时优化
USE_SYSTEM_ICUOFF使用系统 ICU
DISABLE_TIFFOFF禁用 TIFF 支持
DISABLE_CURLOFF禁用 libcurl
DISABLE_ARCHIVEOFF禁用 libarchive

来源: CMakeLists.txt79-107

构建和安装

在 Windows 上使用 Visual Studio

来源: CMakeLists.txt936-979

使用 SW 构建

SW 构建系统对于 Windows 平台特别有用,它简化了构建过程。

来源: sw.cpp1-201

特定平台的注意事项

来源: CMakeLists.txt81-85 CMakeLists.txt168-275 CMakeLists.txt868-880 configure.ac89-117 src/arch/simddetect.cpp26-42

Windows

  • 需要 Visual Studio 2015 或更高版本
  • 启用了特定于 Windows 的功能(ws2_32.lib,MSVC 的 UTF-8 标志)
  • 支持 MSVC 和 clang-cl 编译器
  • 提供了 NSIS 安装程序脚本

Linux/Unix

  • 需要标准的开发工具(gcc/g++、make、autotools)
  • 可以使用包管理器安装依赖项
  • 检测并启用了特定于架构的优化(AVX、SSE)
  • 可以通过符号启用调试模式

macOS

  • 同时支持 Homebrew 和系统库
  • 在可用时对 Accelerate 框架进行特殊处理
  • 支持多架构的通用二进制文件

Android

  • 通过 Android NDK 的 CMake 构建系统提供支持
  • 对 CPU 功能检测进行特殊处理
  • 针对不同 Android 架构的交叉编译设置

来源: CMakeLists.txt868-880 src/arch/simddetect.cpp226-240

SIMD 和架构优化

Tesseract 会在可用时检测并利用硬件加速功能。

来源:src/arch/simddetect.cpp150-293 src/arch/dotproduct.h1-45 src/arch/dotproductneon.cpp1-72 src/arch/intsimdmatrixrvv.cpp1-89

构建训练工具

如果您计划训练新的语言模型或微调现有模型,则需要训练工具。

训练工具的先决条件

  • 所有核心 Tesseract 依赖项
  • ICU 库(Unicode 支持,版本 ≥ 52.1)
  • Pango(文本布局,版本 ≥ 1.38.0)
  • Cairo(图形渲染)
  • FontConfig(字体处理)

训练工具构建过程

使用 Autotools

使用 CMake

来源:src/training/CMakeLists.txt1-435

主要的训练可执行文件

来源:src/training/CMakeLists.txt118-270

持续集成

Tesseract 使用 GitHub Actions 进行持续集成,在多个平台和配置上测试构建。

来源:README.md3-5 .gitignore96-118

疑难解答常见的构建问题

问题可能解决方案
缺少依赖项通过系统的包管理器安装所需的软件包
关于 C++ 标准的编译器错误确保您的编译器支持 C++17 或更高版本
SIMD 相关错误使用构建选项禁用特定优化
构建期间的内存错误使用 -j 标志减少并行作业或增加交换空间
训练工具构建失败确保所有必需的依赖项(ICU、Pango、Cairo)都已安装
ScrollView 错误使用 --disable-graphics-DGRAPHICS_DISABLED=ON 进行禁用

部署

安装目录

使用默认选项安装时,Tesseract 会将文件放在这些标准位置

组件Linux/Unix/macOS 位置Windows 位置
可执行文件/usr/local/bin/tesseractC:\Program Files\tesseract-ocr\tesseract.exe
/usr/local/lib/libtesseract.so.*C:\Program Files\tesseract-ocr\tesseract*.dll
/usr/local/include/tesseract/C:\Program Files\tesseract-ocr\include\
数据文件/usr/local/share/tessdata/C:\Program Files\tesseract-ocr\tessdata\
配置文件/usr/local/share/tessdata/configs/C:\Program Files\tesseract-ocr\tessdata\configs\
文档/usr/local/share/man/C:\Program Files\tesseract-ocr\doc\

来源: CMakeLists.txt936-979

打包

  • Windows:用于创建 Windows 安装程序的 NSIS 安装脚本
  • Linux:兼容标准打包系统(deb、rpm)
  • macOS:可以打包成框架或与 Homebrew 一起使用

来源:Makefile.am57-59

运行时要求

  • Tesseract 库 (libtesseract)
  • Leptonica 库
  • 语言数据文件(.traineddata 文件)
  • 平台的运行时依赖项

版本控制

  • Tesseract 遵循语义化版本控制
  • 版本信息存储在 VERSION 文件中
  • API 兼容性在主版本内保持一致

来源:VERSION1-2 CMakeLists.txt51-64