用sphinx的原版源码进行编译时,只要去掉src目录中Makefile文件的g++ -mt 参数就可以编译过去了,但csft3_0b4用同样的方法,编译不过去,问题出在编译中文分词库的连接时出的错。
错误信息如下: tokenizer_zhcn.cpp: In member function `virtual int CSphTokenizer_zh_CN_GBK::GetLocalBuffer(BYTE*, int, BYTE*)': tokenizer_zhcn.cpp:317: error: invalid conversion from `char**' to `const char**' tokenizer_zhcn.cpp:317: error: initializing argument 2 of `size_t libiconv(void*, const char**, size_t*, char**, size_t*)' tokenizer_zhcn.cpp: In member function `virtual void CSphTokenizer_zh_CN_GBK::SetBuffer(BYTE*, int)': tokenizer_zhcn.cpp:345: error: invalid conversion from `char**' to `const char**' tokenizer_zhcn.cpp:345: error: initializing argument 2 of `size_t libiconv(void*, const char**, size_t*, char**, size_t*)' *** Error code 1 make: Fatal error: Command failed for target `tokenizer_zhcn.o' Current working directory /export/home/dytang/csft3_0b4/src *** Error code 1 make: Fatal error: Command failed for target `all' Current working directory /export/home/dytang/csft3_0b4/src *** Error code 1 The following command caused the error: set fnord $MAKEFLAGS; amf=$2; \ dot_seen=no; \ target=`echo all-recursive | sed s/-recursive//`; \ list='src test'; for subdir in $list; do \ echo "Making $target in $subdir"; \ if test "$subdir" = "."; then \ dot_seen=yes; \ local_target="$target-am"; \ else \ local_target="$target"; \ fi; \ (cd $subdir && make $local_target) \ || case "$amf" in *=*) exit 1;; *k*) fail=yes;; *) exit 1;; esac; \ done; \ if test "$dot_seen" = "no"; then \ make "$target-am" || exit 1; \ fi; test -z "$fail" make: Fatal error: Command failed for target `all-recursive' |