我正尝试在C++应用程序中使用tesseract,但我无法在Visual Studio中运行它。我收到了几个"error LNK2001: unresolved symbol",我相信这是因为Visual Studio找不到我正在尝试使用的dlls。我已经在Using Tesseract OCR in VC++做了所有详细的工作。所有的tesseract库都链接在正确的位置,但仍然无法使其工作。下面是我的代码:
#include "stdafx.h"
#include <iostream>
#include <string>
#include <tesseract/baseapi.h>
#include <leptonica/allheaders.h>
using namespace std;
int main(int argc, char *argv[])
{
char *outText;
tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
// Initialize tesseract-ocr with English, without specifying tessdata path
if (api->Init(NULL, "eng")) {
fprintf(stderr, "Could not initialize tesseract.\n");
exit(1);
}
// Open input image with leptonica library
Pix *image = pixRead("C:\\Users\\Marcio\\PythonProjects\\python_ocr.png");
api->SetImage(image);
// Get OCR result
outText = api->GetUTF8Text();
printf("OCR output:\n%s", outText);
// Destroy used object and release memory
api->End();
delete[] outText;
pixDestroy(&image);
return 0;
}
编辑:这是我得到的完整错误消息:
(?Init@TessBaseAPI@tesseract@@QEAAHPEBD0W4OcrEngineMode@2@PEAPEADHPEBV?$GenericVector@VSTRING@@@@3_N@Z):错误LNK2001:未解析的外部符号"public: int __cdecl tesseract::TessBaseAPI::Init(char const *,char const *,enum tesseract::OcrEngineMode,char * *,int,class GenericVector const *,class GenericVector const *,bool)“TessBaseAPI::Init(char const*,char const*,enum tesseract::OcrEngineMode,char**,int,class GenericVector const*,bool)”TessBaseAPI::Init(char const*,char const*,enum tesseract::OcrEngineMode,char**,int,class GenericVector const*,bool)“TessBaseAPI::Init(char const*
1>CallPythonFromC++.obj :错误LNK2001:未解析的外部符号"public:__cdecl tesseract::TessBaseAPI::TessBaseAPI(void)“(??0TessBaseAPI@tesseract@@QEAA@XZ)
1>CallPythonFromC++.obj :错误LNK2001:未解析的外部符号pixRead
(?SetImage@TessBaseAPI@tesseract@@QEAAXPEBUPix@@@Z):错误LNK2001:未解析的外部符号"public: void __cdecl tesseract::TessBaseAPI::SetImage(struct Pix const *)“TessBaseAPI::SetImage(struct Pix const*)”TessBaseAPI::SetImage(struct Pix const*)“TessBaseAPI::SetImage
(?GetUTF8Text@TessBaseAPI@tesseract@@QEAAPEADXZ):错误1>CallPythonFromC++.obj :未解析的外部符号"public: char *tesseract::TessBaseAPI::GetUTF8Text(LNK2001)“(?GetUTF8Text@TessBaseAPI@tesseract@@QEAAPEADXZ)
1>CallPythonFromC++.obj :错误LNK2001:未解析的外部符号"public: void __cdecl tesseract::TessBaseAPI::End(void)“(?End@TessBaseAPI@tesseract@@QEAAXXZ)
1>CallPythonFromC++.obj :错误LNK2001:未解析的外部符号pixDestroy
1>C:\Users\Marcio\BlindSight\CallPythonFromCPP\x64\Release\CallPythonFromC++.exe :致命错误LNK1120: 7个未解析的外部变量
发布于 2017-10-16 07:23:39
您至少需要添加以下依赖项:
tesseract.lib;openjpeg.lib;libwebp.lib;libtiff.lib;libtesseract.lib;libpng.lib;liblept.lib;libjpeg.lib;jbig2enc.lib;giflib.lib;zlib.lib;
PropertyPages /链接器/输入/其他依赖项
注意您的配置调试/发布X64 ...
https://stackoverflow.com/questions/33853871
复制相似问题