我从here下载了MinGW的Tesseract库,并且已经编译了库并且包含了应该直接工作的示例,并且当我使用示例.pro文件时,所有内容似乎都很好我的Qt 5.8明和构建它我得到了这个错误
:-1: error: cannot find -llept
:-1: error: cannot find -ltesseract
collect2.exe:-1: error: error: ld returned 1 exit status
这里的.pro文件代码
QT =
TARGET = ApiExample
TEMPLATE = app
OBJECTS_DIR += temp
MOC_DIR += temp
UI_DIR += temp
RCC_DIR += temp
SOURCES += ApiExample.cpp
LIBS += -llept -ltesseract
win32: {
CONFIG += console
DESTDIR = ./bin
INCLUDEPATH += ./include/
LIBS += -lws2_32 -L./lib
DEFINES += WINDOWS __BLOB_T_DEFINED
}
然后我尝试编辑.pro文件并删除此行
LIBS += -llept -ltesseract
并添加此
LIBS += -L$$PWD/bin\
libtesseract-3 \
liblept-3 \
我清理并构建结果,它成功构建,没有错误 我尝试在应用程序启动时立即运行崩溃得到此错误
APIExamople.exe has stopped working and two buttons Debug and close program
所以我尝试在bin文件夹中添加所有dll文件!是
LIBS += -L$$PWD/bin\
libtesseract-3 \
liblept-3 \
libgcc_s_dw2-1 \
libgif-4 \
libjbig-1 \
libjpeg-8 \
libpng15-15 \
libstdc++-6 \
libtiff-3 \
libtiffxx-3 \
libwebp-2 \
libmingwm10 \
libzlib1 \
开始构建运行并且再次崩溃
我将所有dll文件复制到调试目录尝试构建并在发布模式下运行所有相同的崩溃
我运行Qt调试,以查看我使用
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
#include <iostream>
int main(int argc, char *argv[])
{
const char* lang = "eng";
const char* filename = "D:/b.jpg";
tesseract::TessBaseAPI tess; // debug stopped here on this line
tess.Init(NULL, lang, tesseract::OEM_DEFAULT);
tess.SetPageSegMode(tesseract::PSM_AUTO);
FILE* fin = fopen(filename, "rb");
if (fin == NULL)
{
std::cout << "Cannot open " << filename << std::endl;
return 0;
}
fclose(fin);
STRING text;
if (tess.ProcessPages(filename, NULL, 0, &text))
{
std::cout << text.string() << std::endl;
}
}
停在 tesseract :: TessBaseAPI tess; 的路线上
我为MSVC使用另一个预构建库并在qt中链接它的库并且它编译和运行并且使用我现在用于MinGW的相同示例代码没有问题
我做错了什么让这次崩溃?
的更新
我尝试从.pro文件中删除此部分
win32: {
CONFIG += console
DESTDIR = ./bin
INCLUDEPATH += ./include/
LIBS += -lws2_32 -L./lib
DEFINES += WINDOWS __BLOB_T_DEFINED
}
现在用所有.pro文件替换它
QT =
TARGET = ApiExample
TEMPLATE = app
OBJECTS_DIR += temp
MOC_DIR += temp
UI_DIR += temp
RCC_DIR += temp
SOURCES += ApiExample.cpp
INCLUDEPATH += $$PWD/include
LIBS += -L$$PWD/bin\
libtesseract-3 \
liblept-3 \
libgcc_s_dw2-1 \
libgif-4 \
libjbig-1 \
libjpeg-8 \
libpng15-15 \
libtiff-3 \
libtiffxx-3 \
libwebp-2 \
libmingwm10 \
libzlib1 \
结果崩溃对话框没有出现,但它崩溃并在Qt应用程序输出中给我这个错误
The program has unexpectedly finished.
当我没有在.exe目录中添加DLL文件时,我遇到此错误,但现在我添加它们,我得到了同样的错误
我需要任何提示来解决我的问题,我现在还在尝试
的更新
我尝试使用QT 5.5.1编译它,但我在mingw32-make步骤中遇到了一些问题和错误,所以如果有人尝试使用MinGW编译它,你可以在这里添加链接到编译库直接使用吗?