我正在尝试将Tesseract OCR库包含到我的Qt项目中。我按照说明完成了所有工作,但它不起作用。
tesseract::TessBaseAPI *myOCR =
new tesseract::TessBaseAPI();
错误 - 未定义对`tesseract :: TessBaseAPI :: TessBaseAPI()'
的引用我认为,这是一个问题,但我不确定。看看.pro文件(只有必要的代码):
unix|win32: LIBS += -L$$PWD/../../Tesseract-OCR/lib/ -llibtesseract302
INCLUDEPATH += $$PWD/../../Tesseract-OCR/include/tesseract
DEPENDPATH += $$PWD/../../Tesseract-OCR/include/tesseract
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../Tesseract-OCR/lib/libtesseract302.lib
unix|win32: LIBS += -L$$PWD/../../Tesseract-OCR/lib/ -lliblept168
INCLUDEPATH += $$PWD/../../Tesseract-OCR/include/leptonica
DEPENDPATH += $$PWD/../../Tesseract-OCR/include/leptonica
win32:!win32-g++: PRE_TARGETDEPS += $$PWD/../../Tesseract-OCR/lib/liblept168.lib
DEFINES += _tagBLOB_DEFINED
DEFINES += USE_STD_NAMESPACE
DEFINES += WINDLLNAME=\\\"lib$$TARGET.dll\\\"
DEFINES += VERSION=\\\"$$VERSION\\\"
DEFINES -= UNICODE
INCLUDEPATH += C:/Tesseract-OCR/tesseract-ocr/api
INCLUDEPATH += C:/Tesseract-OCR/tesseract-ocr/ccmain
INCLUDEPATH += C:/Tesseract-OCR/tesseract-ocr/ccutil
INCLUDEPATH += C:/Tesseract-OCR/tesseract-ocr/ccstruct
INCLUDEPATH += C:/Tesseract-OCR/tesseract-ocr/include
LIBS += C:/Tesseract-OCR/lib/liblept168-static-mtdll.lib
LIBS += C:/Tesseract-OCR/lib/giflib416-static-mtdll.lib
LIBS += C:/Tesseract-OCR/lib/libjpeg8c-static-mtdll.lib
LIBS += C:/Tesseract-OCR/lib/libtiff394-static-mtdll.lib
LIBS += C:/Tesseract-OCR/lib/zlib125-static-mtdll.lib
TessBaseAPI的每个函数都有相同的错误。
答案 0 :(得分:0)
首先:"未定义的引用" 表示liker找不到合适的静态库,所以请看这个方向。
根据this,this和this Tesseract需要libtesseract.lib(.a),还需要liblept.lib(.a)。
我建议您最初不要非常喜欢你的.pro文件,只是尝试构建并运行最低限度(我怀疑它只需要这两个库而可能某些DLL)。
另外,我建议您在.pro文件中指定要链接的库,如下所示:
LIBS += -L" C:/Tesseract-OCR/lib/" -llept
甚至更好(如果您的库被复制到项目文件夹中)
LIBS += -L" $$_PRO_FILE_PWD_/Tesseract-OCR/lib/" -llept
但不喜欢这个
LIBS += C:/Tesseract-OCR/lib/liblept.lib