错误LNK2019未解析的外部符号Tesseract OCR C ++使用VS 2015

时间:2016-10-13 18:12:42

标签: c++ visual-studio-2015 ocr tesseract

是否有人成功配置了Tesseract c ++源代码?它有32颗星,但我坚持甚至运行它,因为它是

当我尝试在我的visual studio中设置Tesseract的源代码时,它会在obj文件中出错,如何编辑这些文件,这对我没有任何意义。如果我不这样做那么我应该做些什么来在我的环境中成功运行它(我有github所要求的相同规格)

  

1.错误LNK2019未解析的外部符号_l_dnaDiffAdjValues在函数_ptraConcatenatePdfToData中引用pdfio2.obj

     

2.错误LNK2019在函数_recogAppend中引用的未解析的外部符号_l_dnaJoin recogbasic.obj

     

3.错误LNK1120 2未解析的外部tesseract.exe

我使用以下setps构建它:

  

1.从此Link下载。

     

2.Downloaded tesseractleptonica

     

3.它包含一个build_tesseract.bat来构建最新的tesseract版本。

     

4.我选择了tesseract作为启动项目

这是我的.cpp主文件

#include "baseapi.h";
#include "allheaders.h";

int main()
{
    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("/usr/src/tesseract/testing/phototest.tif");
    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;
}

1 个答案:

答案 0 :(得分:2)

错误表明无法运行x64/debug/zlib.lib文件。没关系,因为.lib库文件不是可执行文件。

最有可能的是,如果您没有编译错误,则问题的原因在于启动配置。将main.cpp所在的项目设置为 Startup Project

要汇编Tesseract,您应将已下载的Leptonica来源放入VS2015_Tesseract-master\leptonica文件夹,并将Tesseract个来源下载到VS2015_Tesseract-master\tesseract_3.04。我假设VS2015_Tesseract已解压缩到VS2015_Tesseract-master文件夹中。

之后打开VS2015_Tesseract-master\tesseract.sln并构建tesseract项目。您无需使用build_tesseract.bat

tesseract版本的结果为tesseract.exe。我已将main()函数的逻辑放入main(int argc, char **argv)文件中的VS2015_Tesseract-master\tesseract_3.04\api\tesseractmain.cpp。它成功地为我编译。