前の日 / 次の日 / 最新 / 2008-01

01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

2008-01-18 Fri

ビルドできたかな? [Senna]

テストプログラムを書く。

int main()
{
    printf("start\n");

    sen_init();

    sen_index* index = sen_index_create("c:\\index",0, SEN_INDEX_NGRAM,4,sen_enc_default);

    if(index)
    {
        printf("sen_index_create Successful\n");
        sen_rc rc;
        rc = sen_index_close(index);
        if(rc == sen_success){
            printf("sen_index_close Successful\n");
        }else{
            printf("sen_index_close Failed\n");
        }
    }else{
        printf("sen_index_create Failed\n");
    }

    sen_fin();

    printf("end\n");
    getchar();
    return 0;
}

c:\ に転置辞書を作成して終了する。

大丈夫みたいだ。

senna のインストール [Senna]

windows 環境でインストールしてみる。

2) コンパイルに必要なもの
- バージョン0.81以上のmecabのmecab.hとlibmecab.libが必要。

http://mecab.sourceforge.net/ から windows 用をインストール

4) sennaのビルド手順
- sennaのsenna\vcc\mecabフォルダにmecab.hとlibmecab.libをコピー。
- senna\vccフォルダのlibsenna.vcprojをVisualStdioで開く。
- 「ビルド」メニューから"libsennaのビルド"を実行。
- ビルドに成功するとDebugビルドではsenna\vcc\Debugフォルダに、Releaseビルドではsenna\vcc\Releaseフォルダに、ibsenna.libとlibsenna.dllが作成される。
- libsenna.dllをwindowsディレクトリ(c:\WINIDOWS)のsystem32以下に移動する。

mecab.h libmecab.lib は、C:\Program Files\MeCab\sdk にある。

でVSでビルド。

エラー 2 error C3163: '_vsnprintf': 属性が前の宣言と整合しません C:\Program Files\Microsoft Visual Studio 9.0\VC\include\stdio.h 358 libsenna.vc8

VC9 だとそのままではビルドできない?

error C3163: '_vsnprintf' で検索。
なんか同じエラーが出てる人がいる。

http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=2031152&SiteID=1

The VC9 CRT seems to define vsnprintf on its own, a simple shortcut that resolves to _vsnprintf. This conflicts with some third party libs (such like AngelScript) which define vsnprintf for their purposes. For AngelScript the solution is simpel: comment out the line

マクロが衝突しているのが原因

senna_in.h 76行目
#define vsnprintf _vsnprintf
をコメントアウトする。

ビルド成功した

senna を使ってみる [Senna]

はてブから senna の存在を知る。

Google Suggestのようなものを高速に実現するサーバsuggested

[2007-09-04-1]の目的に使ってみる。