Ubuntu 10.04.2 LTSに入れた。
ftp://ftp.cs.brown.edu/pub/nlparser/からparser05Aug16.tar.gzをダウンロード。

解凍してでてきたPARSEディレクトリでmake parseItを実行する。とエラーがでた。

$ make parseIt
/usr/bin/g++ -c -O BchartSm.C
BchartSm.C: In member function ‘double Bchart::pHypgt(const std::string&, int)’:t)
BchartSm.C:555: error: ‘strpbrk’ was not declared in this scopeco

strpbrkでぐぐると、http://www9.plala.or.jp/sgwr-t/lib/strpbrk.html string.hが足りないらしいので追加。

$ make parseIt
/usr/bin/g++ -c -O BchartSm.C
BchartSm.C: In member function ‘double Bchart::pHypgt(const std::string&, int)’:t)
BchartSm.C:556: error: invalid conversion from ‘const char*’ to ‘char*’r*’

http://categorizer.tmit.bme.hu/svn/ppi-benchmark/Parsing/Charniak-Lease-2006Aug-reranking-parser.patch
を参考にして、char*をconst char*にした

$ make parseIt
/usr/bin/g++ -c -O BchartSm.C
/usr/bin/g++ -c -O Bst.C
/usr/bin/g++ -c -O FBinaryArray.C
/usr/bin/g++ -c -O CntxArray.C
/usr/bin/g++ -c -O ChartBase.C
ChartBase.C: In member function ‘int ChartBase::effEnd(int)’:t)
ChartBase.C:79: error: ‘strcmp’ was not declared in this scopeco

ChartBase.Cにもstring.hをinclude

$ make parseIt
/usr/bin/g++ -c -O ChartBase.C
/usr/bin/g++ -c -O ClassRule.C
/usr/bin/g++ -c -O CombineBests.C
/usr/bin/g++ -c -O ECArgs.C
ECArgs.C: In member function ‘bool ECArgs::isset(char)’:r)
ECArgs.C:66: error: no matching function for call to ‘find(std::_List_iterator<std::basic_strinn
g<char, std::char_traits<char>, std::allocator<char> > >, std::_List_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::string&)’d
ECArgs.C: In member function ‘std::string ECArgs::value(char)’:r)
ECArgs.C:79: error: no matching function for call to ‘find(std::_List_iterator<std::basic_strinn
g<char, std::char_traits<char>, std::allocator<char> > >, std::_List_iterator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::string&)’

エラーメッセージがさっぱりわからんけど、上のパッチをみながら#include <algorithm>を追加したらクリ
アできた。

$ make parseIt
/usr/bin/g++ -c -O FeatureTree.C
FeatureTree.C: In member function ‘int FeatureTree::readOneLevel0(std::istream&, int)’:
FeatureTree.C:96: error: ‘atoi’ was not declared in this scope

atoiはstdlib.hなので追加。

$ make parseIt
/usr/bin/g++ -c -O Params.C
Params.C: In member function ‘void Params::init(ECArgs&)’:
Params.C:73: error: ‘strcpy’ was not declared in this scope
Params.C:74: error: ‘strchr’ was not declared in this scope

strcpyはstring.h。

$ make parseIt
/usr/bin/g++ -c -O utils.C
utils.C: In function ‘char* toLower(const char*, char*)’:
utils.C:80: error: ‘strlen’ was not declared in this scope
make: *** [utils.o] エラー 1

strlenもstring.h。

これでインストールできた。PARSEディレクトリにparseItというバイナリができる。

参考にしたURL

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

ねこ認証:9つのパネルの中からねこを3匹選んでください