对`tesseract :: TessBaseAPI :: TessBaseAPI()'的未定义引用

时间:2014-07-30 18:38:24

标签: c++ compilation linker codeblocks tesseract

我正在尝试使用tesseract c ++库,但是我收到以下链接器错误(mingw32-g ++):

undefined reference to `tesseract::TessBaseAPI::TessBaseAPI()'

我使用Code :: Blocks作为我的IDE并完成了以下步骤来准备我的环境:

  1. 下载资源并准备我的构建文件夹,如http://tesseract-ocr.googlecode.com/svn/trunk/vs2008/doc/setup.html

  2. 中所述
  3. 创建了一个新的Code :: Blocks项目

  4. 将lib目录中包含的所有库添加到项目中(Settings-> Compiler Settings-> Linker Setting-> Link libraries-> add)
  5. 在搜索目录列表中添加了三个附加文件夹(include,include / tesseract,include / leptonica)(设置 - >编译器设置 - >搜索directorys->添加)
  6. 然后我写了一些代码来测试我的配置......

    #include <baseapi.h>
    #include <allheaders.h>
    #include <iostream>
    using namespace std;
    
    int main()
    {
        tesseract::TessBaseAPI *api = new tesseract::TessBaseAPI();
        return 0;
    } 
    

    ...并且出现上述编写的链接器错误。

    我不知道我做错了什么,希望有人有个主意。

    非常感谢。

3 个答案:

答案 0 :(得分:1)

您必须在构建设置中的其他链接标记下添加库。

尝试在以下约定中添加 -ltesseract和-lstdc ++ 以及tesseract和leptonica库的路径: 的 -L / USR /本地/地窖/超正方体​​/ 3.04.01_2 / lib中

答案 1 :(得分:0)

我必须添加所有C / C ++包含路径:

..\tesseract_3.05\api
..\tesseract_3.05\ccmain
..\tesseract_3.05\ccutil
..\tesseract_3.05\ccstruct
..\tesseract_3.05\classify
..\tesseract_3.05\cube
..\tesseract_3.05\cutil
..\tesseract_3.05\dict
..\tesseract_3.05\neural_networks\runtime
..\tesseract_3.05\textord
..\tesseract_3.05\viewer
..\tesseract_3.05\opencl
..\tesseract_3.05\wordrec
..\leptonica\src
..\liblept

我还添加了所有库:

giflib.lib
libjpeg.lib
liblept.lib
libpng.lib
libtesseract.lib
libtiff.lib
libwebp.lib
openjpeg.lib
zlib.lib

答案 2 :(得分:0)

在ubuntu中,安装tesseract和leptonica:

sudo apt安装tesseract-ocr

sudo apt安装libtesseract-dev

(请参阅:https://github.com/tesseract-ocr/tesseract/wiki

放置标题:

#include

#include

编译:

g ++ program.cpp -o程序-llept -ltesseract