こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

茶筅を使いたい!

茶筅を使って形態素解析を行いたいと思っています。
使う言語はC++です。
環境はborland C++ 5.5です。

サンプルプログラムを実行するのですが、
Error: 外部シンボル '_set_argument_parameters' が未解決(C:\PROGRAM FILES\CHASEN21\DLL\DLLTEST.OBJ が参照)
Error: 外部シンボル '_analyze' が未解決(C:\PROGRAM FILES\CHASEN21\DLL\DLLTEST.OBJ が参照)
というエラーがでます。

環境設定で、chadll.hのある場所まで設定しています。
(この辺の意味が全然わかりませんが)
dllとかlibとかに疎いので、全然進めません。
どのようにすればうまく動かすことができますか??

サンプルプログラム
#include <stdio.h>
#include "chadll.h"

int main(int argc,char** argv)
{
char input[10000] = "これは形態素解析のテストです。";

set_argument_parameters(argc,argv);
printf( "%s", analyze( input ) );
return 0;
}

投稿日時 - 2008-06-12 22:37:56

QNo.4096123

暇なときに回答ください

質問者が選んだベストアンサー

【方法1】
c:\chasen にインストールされていて、 c:\chasen\dll に
dlltest.c, chasen.dll, chasen.lib, chadll.h
等があるとして、コマンド・プロンプトで、

|>cd c:\chasen\dll
|>coff2omf chasen.lib chasenbcc.lib
|COFF to OMF Converter Version 1.0.0.74 Copyright (c) 1999, 2000 Inprise Corporation

|>bcc32 dlltest.c chasenbcc.lib
|Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
|dlltest.c:
|警告 W8070 dlltest.c 19: 関数は値を返すべき(関数 main )
|Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

のようにします。(先頭に '>' が付く行が入力です)
coff2omf で chasenbcc.lib を作ります。
次回コンパイルからは coff2omf の実行は必要ありません。

できた dlltest.exe と chasen.dll を c:\chasen にコピーして、

|>dlltest -r chasenrc
|これ コレ これ 名詞-代名詞-一般
|は ハ は 助詞-係助詞
|形態素 ケイタイソ 形態素 名詞-一般
|解析 カイセキ 解析 名詞-サ変接続
|の ノ の 助詞-連体化
|テスト テスト テスト 名詞-サ変接続
|です デス です 助動詞 特殊・デス 基本形
|。 。 。 記号-句点
|EOS


【方法2】
Borland C++ 5.5.1 でも確認しました。
http://chasen.aist-nara.ac.jp/ml/chasen-users/msg00237.html

ここのプログラム中の以下の2行
char *params[3] = {"chasen", "-j", 0};
(*set_argument_parameters)(2, params);

char *params[5] = {"chasen", "-j", "-r", "chasenrc", 0};
(*set_argument_parameters)(4, params);
に変えて下さい。

投稿日時 - 2008-06-13 20:49:02

お礼

ありがとうございましたm(_ _)m

投稿日時 - 2008-06-20 02:58:02

ANo.3

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(3)

ANo.2

WinChaに付属のサンプルのようですが
libファイルはVisual C++とBorland C++では互換性がありません
WinCha付属のchasen.libはVC++用ですのでBCCでは使えません

投稿日時 - 2008-06-13 12:10:59

ANo.1

> 環境設定で、chadll.hのある場所まで設定しています。
> (この辺の意味が全然わかりませんが)
> dllとかlibとかに疎いので、全然進めません。

この辺りを理解していないと、外部のライブラリを使うのは難しいと思います。

参考URL:http://oshiete1.goo.ne.jp/qa4078238.html

投稿日時 - 2008-06-13 00:10:28

あなたにオススメの質問