Tesseract и Visual C++ 2015

Я пытаюсь использовать tesseract в приложении C++, но я не могу заставить его работать в Visual Studio. Я получаю пару "ошибок LNK2001: неразрешенный внешний символ", который, я считаю, потому, что Visual Studio не может найти DLL, которые я пытаюсь использовать. Я сделал все, что описано в разделе Использование Tesseract OCR в V C++. Все библиотеки 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; 

}

EDIT: Это полное сообщение об ошибке, которое я получаю:

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ "public: int __cdecl tesseract :: TessBaseAPI :: Init (char const *, char const *, enum tesseract :: OcrEngineMode, char * *, int, class GenericVector const *, class GenericVector const *, bool) "(? Init @TessBaseAPI @tesseract @@QEAAHPEBD0W4OcrEngineMode @2 @PEAPEADHPEBV? $ GenericVector @VSTRING @@@@3_N @Z)

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ "public: __cdecl tesseract :: TessBaseAPI :: TessBaseAPI (void)" (? 0TessBaseAPI @tesseract @@QEAA @XZ)

1> CallPythonFrom C++.obj: ошибка LNK2001: нерешенный внешний символ pixRead

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ "public: void __cdecl tesseract :: TessBaseAPI :: SetImage (struct Pix const *)" (? SetImage @TessBaseAPI @tesseract @@QEAAXPEBUPix @@@Z)

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ "public: char * __cdecl tesseract :: TessBaseAPI :: GetUTF8Text (void)" (? GetUTF8Text @TessBaseAPI @tesseract @@QEAAPEADXZ)

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ "public: void __cdecl tesseract :: TessBaseAPI :: End (void)" (? End @TessBaseAPI @tesseract @@QEAAXXZ)

1> CallPythonFrom C++.obj: ошибка LNK2001: неразрешенный внешний символ pixDestroy

1> C:\Users\Marcio\BlindSight\CallPythonFromCPP\x64\Release\CallPythonFrom C++.exe: фатальная ошибка LNK1120: 7 нерешенных внешних

0
22 нояб. '15 в 10:40
источник поделиться
1 ответ

Вы должны хотя бы добавить следующие зависимости:

tesseract.lib; openjpeg.lib; libwebp.lib; libtiff.lib; libtesseract.lib; libpng.lib; liblept.lib; libjpeg.lib; jbig2enc.lib; giflib.lib; zlib.lib;

PropertyPages/Linker/Input/Additional Dependencies

Обратите внимание на конфигурацию Debug/Release X64...

0
15 окт. '17 в 23:23
источник

Посмотрите другие вопросы по меткам или Задайте вопрос