2011-07-23 12 views
1

は、私は次のコードを書き、すでにOpenCVのために使用されている私のVisual C++プロジェクト(]のインクルードディレクトリに...tesseract/ccmain/ディレクトリを追加しました。ビルドエラー

#include "baseapi.h" 

..... [OpenCVのコードと、そのような] ....

//********************* Tesseract OCR function calls ********************************************* 

// create a temp buffer 
    unsigned char *buffer,*temp2; 
    buffer = new unsigned char[plate->width*plate->height*plate->nChannels]; 
    //'plate' is an IplImage* 
    temp2 = buffer; 
    // pointer to imageData 
    unsigned char *temp1 = (unsigned char*) plate->imageData; 
    // copy imagedata to buffer row by row 
    for(i=0;i<plate->height;i++) 
    { 
      memcpy(temp2, temp1, plate->width*plate->nChannels); 
      // imageData jump to next line 
      temp1 = temp1 + plate->widthStep; 
      // buffer jump to next line 
      temp2 = temp2+ plate->width*plate->nChannels; 
    } 

    TessBaseAPI::InitWithLanguage(NULL, NULL, "eng", NULL, false, 0, NULL); 
    char* Text = TessBaseAPI::TesseractRect(buffer, 8, 8, 
           0, 0, plate->width,plate->height); 
    TessBaseAPI::End(); 

    printf("\n%s", Text); 

それはエラーなしでコンパイルされたが、私はそれを構築しようとすると、このエラーがおきたTesseract関連の関数呼び出しのためにあります。 "未解決の外部記号XXXXX。 " コンパイル時に表示されないTesseractのリンクや組み込みに間違いはありますか?

助けがあれば助かります。

EDIT:これらはエラーメッセージです:

Linking... 
image.obj : error LNK2001: unresolved external symbol "public: static void __cdecl TessBaseAPI::End(void)" ([email protected]@@SAXXZ) 
image.obj : error LNK2001: unresolved external symbol "public: static char * __cdecl TessBaseAPI::TesseractRect(unsigned char const *,int,int,int,int,int,int)" ([email protected]@@[email protected]) 
image.obj : error LNK2001: unresolved external symbol "public: static int __cdecl TessBaseAPI::InitWithLanguage(char const *,char const *,char const *,char const *,bool,int,char * * const)" ([email protected]@@[email protected]) 
Debug/proj.exe : fatal error LNK1120: 3 unresolved externals 
Error executing link.exe. 
Creating browse info file... 

proj.exe - 4 error(s), 0 warning(s) 
+1

OK以下試してくださいでしたstdlib.hにあります。その非常に難しいことですが、APIは本当にその価値よりもトラブルが増えています!! – AruniRC

答えて

1

あなたは、関連.LIBファイルを見つけると、あなたのプロジェクトにリンクする必要があります。

+0

は、tessdll.libしか見つかりませんでした。それでも同じビルドエラーがあります。何か案は? – AruniRC

0

こんにちは私はシステム()関数を使用して、シェルに「たTesseract image.tifテキスト-lはeng」を渡すことによってたTesseractのコマンドラインを実行しているコード...

#define TESSDLL_IMPORTS 
#include "stdafx.h" 
#include "baseapi.h" 
#include <string> 

using namespace std; 

int main(int argc, char **argv) 
{ 
    string outfile; 
    tesseract::TessBaseAPI api; 

    return 0; 
} 
+0

まだビルドエラーがありましたが、私はライブラリを含めて間違いをしているに違いありません。とにかくありがとう、私はプログラム内からTesseractのコマンドライン引数を使用しています。そのようにうまく動作します。 APIはその価値よりも難しいようでした。 – AruniRC