Debian 9编译安装Tesseract-OCR执行make时报constexpr相关错误如何解决
问题原因与解决方案
根本原因
- 你当前使用的GCC 6.3版本不支持C17标准的
if constexpr语法,而最新版tesseract源码依赖该C17特性,因此首次编译直接报错 - 后续的二次报错是首次编译失败后残留的不完整构建缓存导致的
可行解决步骤
方案1:升级GCC版本(推荐,可编译最新版tesseract)
- 先清理之前的损坏构建缓存,在tesseract源码目录执行:
make distclean
- 安装Debian9支持的高版本GCC,这里安装GCC 8:
echo "deb http://ftp.debian.org/debian stretch-backports main" >> /etc/apt/sources.list apt update apt install -y gcc-8 g++-8
- 配置环境变量指定用GCC 8编译,再重新走编译流程:
export CC=gcc-8 export CXX=g++-8 ./autogen.sh ./configure make -j$(nproc) make install ldconfig
方案2:安装旧版兼容的tesseract
如果不想升级GCC,可以切换到支持C++14的tesseract 4.1版本分支编译:
- 同样先清理损坏构建缓存:
make distclean
- 切换到4.1.1版本标签后重新编译:
git checkout 4.1.1 ./autogen.sh ./configure make -j$(nproc) make install ldconfig
内容的提问来源于stack exchange,提问作者Christoforos
相关产品推荐
相关产品推荐

