
如何用 CMake 构建 Tesseract 并开启 BUILD_TRAINING_TOOLS 编译训练工具【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseract如果你要用 Tesseract 训练自己的语言模型就需要源码树里src/training/下的训练工具lstmtraining、text2image、unicharset_extractor等而官方二进制包不一定带全这些工具。本文的任务是用 CMake 从源码构建 Tesseract并确认BUILD_TRAINING_TOOLS选项开启把训练工具一并编译出来。适用环境为 LinuxINSTALL.GIT.md 中 cmake 小节给出的 Linux 构建流程构建产物默认输出到build/bin目录。构建前的依赖检查CMake 配置阶段会逐项检查依赖提前装好可以避免 configure 阶段直接报错依赖要求来源CMake ≥ 3.10CMakeLists.txt 中cmake_minimum_required(VERSION 3.10 FATAL_ERROR)支持 C17 的编译器INSTALL.GIT.md 列出的训练工具依赖CMake 会把标准设为 C17若编译器支持则自动提升到 C20Leptonica ≥ 1.74CMakeLists.txt 中MINIMUM_LEPTONICA_VERSION 1.74找不到时会报Cannot find required library Leptonica. Quitting!并终止pkg-config训练工具依赖 ICU 和 pango 时通过 pkg-config 探测icu-devel、pango-devel、cairo-develINSTALL.GIT.md 列出的训练工具已知依赖不含 leptonica注意两点INSTALL.GIT.md 的 autotools 小节写的是 “Tesseract 4.0x 最低需要 Leptonica 1.74.2”而 CMake 路径检查的是 1.74。本文走 CMake 路径以 1.74 为准。README.md 提示从源码构建前先确认你的编译器在 Tesseract 支持的编译器列表中。用 CMake 配置并编译INSTALL.GIT.md 给出的 Linux cmake 构建流程是mkdir build cd build cmake .. make开启训练工具时在 cmake 命令上显式加上-DBUILD_TRAINING_TOOLSON。实际上 CMakeLists.txt 中该选项默认为 ONoption(BUILD_TRAINING_TOOLS Build training tools ON)所以不加参数也会编译训练工具显式写出是为了确认意图同时如果构建机缺少 ICU/pango你能立刻从配置摘要里看出原因mkdir build cd build cmake -DBUILD_TRAINING_TOOLSON .. make这里不能把 cmake 直接跑在源码目录里CMakeLists.txt 检测到源码目录与构建目录相同时会直接报FATAL_ERROR CMake generation is not possible within the source directory!并提示在另一个目录例如build重新执行。配置完成后检查 configure 摘要中的两项关键输出Found leptonica version: 版本—— Leptonica 探测成功Build training tools [BUILD_TRAINING_TOOLS]: ON—— 训练工具子目录会被加入构建。这两行都来自 CMake 配置阶段打印的 General configuration 摘要块。确认训练工具被编译出来了CMakeLists.txt 把CMAKE_RUNTIME_OUTPUT_DIRECTORY设为build/bin所以编译完成后所有可执行文件含训练工具都在build/bin下。具体哪些工具被编译由 src/training/CMakeLists.txt 中的条件决定只要BUILD_TRAINING_TOOLSON就会编译common_training库以及combine_tessdata、dawg2wordlist、wordlist2dawg额外要求DISABLED_LEGACY_ENGINE为 OFF默认即 OFF才会编译ambiguous_words、classifier_tester、cntraining、mftraining、shapeclustering额外要求找到 ICU通过 pkg-config 查icu-uc、icu-i18n否则回退到find_package(ICU 52.1)才会编译unicharset_training库以及combine_lang_model、lstmeval、lstmtraining、merge_unicharsets、set_unicharset_properties、unicharset_extractor额外要求找到 pkg-config 且能探测到pango1.38.0、cairo、pangoft2、pangocairo、fontconfig才会编译pango_training库和text2image。验证方式构建结束后查看build/bin例如确认lstmtraining、text2image是否在其中再对主程序做一次冒烟检查README.md 给出的方式./bin/tesseract --help能打印出命令行用法说明说明构建出的tesseract可执行文件可以运行。如果配置阶段打印了 ICU not found!则 LSTM 相关的训练工具lstmtraining、lstmeval等不会出现在build/bin里同理pango 相关依赖缺失时text2image不会编译。安装到系统可选只在本机使用build/bin里的可执行文件的话可以跳过安装。需要系统级安装时INSTALL.GIT.md 的流程是sudo make install注意这一步会动用 root 权限把tesseract、libtesseract及训练工具写入系统前缀的bin、lib、include等目录并安装 tesseract 的 CMake 配置与 pkgconfig 文件会影响系统范围内已有的 Tesseract 版本。常见配置失败与限制在源码目录里跑 cmake直接 FATAL_ERROR按提示改为在build等独立目录执行。找不到 Leptonicaconfigure 报Cannot find required library Leptonica. Quitting!。CMake 先按 CONFIG 方式查找找不到再退回 pkg-config 的lept检查两个路径都失败才会报错可用-DLeptonica_DIRpath给 CMake 提供 leptonica 的查找提示见 CMakeLists.txt 中的注释。缺少 pkg-config训练工具子目录依赖它探测 ICU 与 pango没有 pkg-config 时 ICU/pango 相关工具不会编译src/training/CMakeLists.txt 中有相应说明。LTO 在 arm/RBPi 上不可用CMakeLists.txt 在 NEON 环境下会提示LTO build is not supported on arm/RBPi.并自动关闭 LTO这属于预期行为不需要处理。完成构建后build/bin里的lstmtraining、text2image、unicharset_extractor等工具就是 Tesseract 训练流程的入口后续具体训练步骤不在本文范围内可参考 README.md 中指向的 Tesseract Training 文档。【免费下载链接】tesseractTesseract Open Source OCR Engine (main repository)项目地址: https://gitcode.com/GitHub_Trending/te/tesseract创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考