本页面涵盖了在 Windows 平台上构建 Tesseract OCR 的过程。它提供了 CMake 和 SW 构建系统的详细说明,并解释了如何创建 Windows 安装程序以供分发。有关一般的构建信息,请参阅构建和部署。
Tesseract 在 Windows 平台支持两种主要的构建系统,并可以创建分发安装程序
来源: CMakeLists.txt11-996 sw.cpp1-365
在 Windows 上构建 Tesseract 需要以下工具和依赖项
来源: CMakeLists.txt11-71 .github/workflows/cmake-win64.yml44-97
CMake 是 Tesseract 在 Windows 上的主要构建系统。它会生成 Visual Studio 解决方案文件,可用于构建库和可执行文件。
克隆仓库:
git clone https://github.com/tesseract-ocr/tesseract.git
cd tesseract
使用 CMake 进行配置:
mkdir build
cd build
cmake ..
构建解决方案:
tesseract.sln 并构建cmake --build . --config Release安装:
cmake --build . --config Release --target install
| 选项 | 描述 | 默认 | 参考 |
|---|---|---|---|
SW_BUILD | 使用 SW 构建 | ON (Windows) | CMakeLists.txt81-85 |
WIN32_MT_BUILD | 使用 MT 标志构建(静态 CRT) | OFF | CMakeLists.txt103-107 |
OPENMP_BUILD | 构建时启用 OpenMP 支持 | OFF | CMakeLists.txt86 |
BUILD_SHARED_LIBS | 构建 DLL 而非静态库 | OFF | CMakeLists.txt139-141 |
DISABLE_LEGACY_ENGINE | 禁用旧版 OCR 引擎 | OFF | CMakeLists.txt88 |
BUILD_TRAINING_TOOLS | 构建训练工具 | ON | CMakeLists.txt95 |
ENABLE_LTO | 启用链接时优化 | OFF | CMakeLists.txt89 |
GitHub Actions 工作流程展示了典型的 Windows 构建配置
cmake -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_PREFIX_PATH=${{env.ILOC}}
-DCMAKE_INSTALL_PREFIX=${{env.ILOC}} -DSW_BUILD=OFF -DBUILD_SHARED_LIBS=ON
-DENABLE_LTO=ON -DBUILD_TRAINING_TOOLS=OFF -DFAST_FLOAT=ON
-DGRAPHICS_DISABLED=ON -DOPENMP_BUILD=OFF
来源: CMakeLists.txt79-564 .github/workflows/cmake-win64.yml104-108
Tesseract 包含多个 Windows 特定的编译设置
对于 MSVC 构建,Tesseract 添加了以下编译器选项
对于 Windows x86/x64 构建,Tesseract 启用了各种 SIMD 优化
来源: CMakeLists.txt286-308 CMakeLists.txt168-194
SW 是一个专为 Windows 设计的替代构建系统。在 CMake 配置中,它默认启用 Windows 构建。
SW 是一个简化 Windows 上依赖管理和配置的构建系统。对于 Tesseract,SW 构建配置在 sw.cpp 中定义,并提供
NOMINMAX)使用 CMake 启用 SW 构建
cmake -DSW_BUILD=ON ..
SW 构建系统将
SW 特定的选项定义在 sw.cpp36-56,包括
ws2_32.lib)来源: CMakeLists.txt81-85 sw.cpp1-119
Tesseract 包含 NSIS 脚本,用于创建 Windows 安装程序以供分发。
Windows 安装程序可以使用 NSIS 构建
cd nsis
makensis -DVERSION=X.Y.Z -DW64 tesseract.nsi
对于自动化构建,项目包含
安装程序包含以下组件(在 nsis/tesseract.nsi200-488中定义)
来源: nsis/tesseract.nsi200-488 .github/workflows/installer-for-windows.yml1-28 nsis/build.sh1-112
Tesseract 的仓库包含一个用于 Windows 构建的 GitHub Actions 工作流,位于 .github/workflows/cmake-win64.yml
工作流
此工作流是完整构建过程的绝佳参考。
来源: .github/workflows/cmake-win64.yml1-132
OpenMP 支持需要 Visual Studio 2019 16.9 或更新版本
对于 Visual Studio 2022 17.10 或更新版本,Tesseract 添加了针对互斥锁崩溃的变通方法
WIN32_MT_BUILD=ON 进行静态 CRT 链接来源: CMakeLists.txt321-325 CMakeLists.txt309-312 CMakeLists.txt168-275