c++ - 错误 LNK2019 无法解析的外部符号 Tesseract OCR C++ 使用 VS 2015

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

请人配置Tesseract c++ 源代码成功了吗?它有 32 颗星,但我什至坚持按原样运行它

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

1.Error LNK2019 unresolved external symbol _l_dnaDiffAdjValues referenced in function _ptraConcatenatePdfToData pdfio2.obj

2.Error LNK2019 unresolved external symbol _l_dnaJoin referenced in function _recogAppend recogbasic.obj

3.Error LNK1120 2 unresolved externals tesseract.exe

我使用以下设置构建它:

1.Downloaded from this Link.

2.Downloaded tesseract and leptonica.

3.It contains a build_tesseract.bat to build the latest tesseract version.

4.I had selected the tesseract as start up Project

这是我的.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;
}

最佳答案

错误表明无法运行 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() 函数逻辑放入 VS2015_Tesseract-master\tesseract_3.04\api\中的 main(int argc, char **argv) tesseractmain.cpp 文件。它为我成功编译。

关于c++ - 错误 LNK2019 无法解析的外部符号 Tesseract OCR C++ 使用 VS 2015,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40028124/

相关文章:

c++ - MFC CScrollView 滚动不工作

c++ - 如何在 C++ 文件的开头添加一行?

powershell - 未找到请求的值 'VS2015'。 - Azure powershell

visual-c++ - FFmpeg avformat_open_input 不工作 : Invalid data found when processing input

android - 在android的onPreviewFrame期间转换YUV-> RGB(图像处理)-> YUV?

c++ - 在 C++ 中为指针 vector 创建自定义排序时遇到问题

c# - 使用 EmguCV 进行骨架化

git - Visual Studio 不会撤消我的 git 更改

c# - 适用于 Windows Phone 8 的 OCR API

python - 处理表格的图像以从中获取数据