1

MinGWでtesseract-ocr-3.01をコンパイルしていますが、このエラーが発生しますambigs.cpp:31:22: fatal error: strtok_r.h: No such file or directory

これは、エラーが発生するコードです。

#ifdef WIN32
#ifndef __GNUC__
#define strtok_r strtok_s
#else
#include "strtok_r.h"
#endif  /* __GNUC__ */
#endif  /* WIN32 */

編集

strtok_r.hをMinGWに追加するこの機能リクエストを見つけました。そこのコメントから:

strtok_r()はオプションのPOSIX関数であり、POSIXスレッドをサポートする実装にのみ必要です。MinGWはPOSIXスレッドをサポートしていません。したがって、この関数は基本のMinGWディストリビューションには存在しないと思います。

MS-WindowsのPOSIXスレッドのサポートは、pthreads-win32プロジェクトによって提供されます。たぶん、彼らはすでにstrtok_r()の実装を提供しています。もしそうなら、あなたはそれを使うことができます。そうでない場合は、追加を検討するように依頼することができます。

4

1 に答える 1

1

この問題は、strtok_r実装をプロジェクトのソースに追加することで最も簡単に解決できます。

char *strtok_r(char *str, const char *delim, char **save)
{
    char *res, *last;

    if( !save )
        return strtok(str, delim);
    if( !str && !(str = *save) )
        return NULL;
    last = str + strlen(str);
    if( (*save = res = strtok(str, delim)) )
    {
        *save += strlen(res);
        if( *save < last )
            (*save)++;
        else
            *save = NULL;
    }
    return res;
}
于 2012-10-19T14:28:04.507 に答える