首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C++/Qt中未定义的参考错误

C++/Qt中未定义的参考错误
EN

Stack Overflow用户
提问于 2015-06-25 04:39:57
回答 1查看 585关注 0票数 1

我正在尝试将Tesseract OCR库包含到我的Qt项目中。我已经按照指示做了每件事,但不起作用。

代码语言:javascript
复制
tesseract::TessBaseAPI *myOCR =
            new tesseract::TessBaseAPI();

错误-对`tesseract::TessBaseAPI::TessBaseAPI()'的未定义引用

就像我想的,这是连接问题,但我不确定。查看一下.pro文件(只有必要的代码):

代码语言:javascript
复制
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的每个函数都有相同的错误。

EN

回答 1

Stack Overflow用户

发布于 2017-08-10 06:15:15

首先:“未定义引用”意味着liker无法找到合适的静态库,所以请看这个方向。

根据的说法,需要libtesseract.lib (.a),也需要liblept.lib (.a)。

我建议一开始不要太喜欢.pro文件,只需构建并运行一个最小值(我怀疑它只需要这两个库,可能还需要一些DLL)。

此外,我建议指定您希望在.pro文件中链接的库,如下所示:

代码语言:javascript
复制
LIBS += -L" C:/Tesseract-OCR/lib/" -llept

或者更好的是这样(如果您的库被复制到您的项目文件夹中)

代码语言:javascript
复制
LIBS += -L" $$_PRO_FILE_PWD_/Tesseract-OCR/lib/" -llept

不是这样的

代码语言:javascript
复制
LIBS +=  C:/Tesseract-OCR/lib/liblept.lib
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31041323

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档