我有一个基本的空Qt 5.8项目,我希望集成Tesseract库来使用它。我找不到任何完整的分步说明,所以我希望有人可以分享经验。
我想在我的代码中使用类似的东西:
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
我知道我需要在.pro文件中添加一些额外的指令(等LIBS,HEADERS),但我不知道有没有正确的方法可以做到这一点。
Qt 5.8
Windows 10
MinGW 32位
答案 0 :(得分:0)
&#34;与Qt&#34;部分是多余的,你不需要做任何事情&#34;用Qt&#34;为了使用通用库。
需要使用优选相同或至少二进制兼容的编译器来构建库。可以找到实际构建说明here。
对于Qt PRO文件,您只需use the wizard from Creator - 单击左侧栏(项目树)中的项目名称和&#34;添加库&#34;根据您使用的lib类型,按照向导进行操作。
它将按以下格式生成必要的项目定义:
win32:CONFIG(release, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/release/ -lmylib
else:win32:CONFIG(debug, debug|release): LIBS += -L$$OUT_PWD/../../../projects/mylib/debug/ -lmylib
else:unix: LIBS += -L$$OUT_PWD/../../../projects/mylib/ -lmylib
INCLUDEPATH += $$PWD/../../../projects/mylib
DEPENDPATH += $$PWD/../../../projects/mylib
win32:CONFIG(release, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/release/mylib.lib
else:win32:CONFIG(debug, debug|release): PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/debug/mylib.lib
else:unix: PRE_TARGETDEPS += $$OUT_PWD/../../../projects/mylib/libmylib.a
答案 1 :(得分:0)
在Tesseract进入其稳定分支之前,我在一个也使用OpenCV的项目中完成了一次。这让我省去了所有的图像阅读库,因为我会通过OpenCV这样做。我最终通过Cygwin编译了Tesseract,但这给了我二进制兼容的libs以便在我的MinGW32项目中使用。
我大部分都关注http://vorba.ch/2014/tesseract-cygwin.html。我将Leptonica 1.72配置为:
./configure --without-giflib --without-zlib --without-libpng --without-jpeg --without-libtiff --without-libwebp --without-libopenjpeg
如果你在cygwin下编译leptonica,源路径中一定不能有任何空格,否则你会得到错误的'\'错误。
要编译tesseract本身,您会发现MinGW不提供strtok_r.h。但是,Tesseract包含一个版本的strtok_r.cpp,所以最简单的解决方法是编辑ambigs.cpp并用函数签名替换#include“strtok_r.h”:
char *strtok_r(char *s, const char * sep, char ** p);
MinGW在math.h中有一个关于_hypot函数的错误。用hypot替换它(没有下划线)修复了这个问题。
这是我当时为自己记录的所有内容。如果您有任何问题请告诉我,以便我可以看到我是否忘记包含任何内容。
答案 2 :(得分:0)
Ubuntu和MacOS
here可以找到不错的参考,并在.pro中为Ubuntu添加以下行:
INCLUDEPATH += /usr/local/include/tesseract
INCLUDEPATH += /usr/local/include/leptonica
LIBS += -ltesseract -llept
Windows
您应该编译tesseract项目,并且可以找到完整的分步说明here
win32:CONFIG(release, debug|release): LIBS += -L'C:/Program Files/tesseract/lib/' -ltesseract50
else:win32:CONFIG(debug, debug|release): LIBS += -L'C:/Program Files/tesseract/lib/' -ltesseract50d
INCLUDEPATH += 'C:/Program Files/tesseract/include'