MAC OSX安装全文索引coreseek问题

时间:2021-11-05 08:26:42

根据coreseek官方文档安装:

http://www.coreseek.cn/products-install/install_on_macosx/

(1)在最后安装mmseg过程中,进行make操作的时候,突然报了以下错误信息:

n file included from css/ThesaurusDict.cpp:6:
../src/css/ThesaurusDict.h:12:17: error: expected namespace name
using namespace __gnu_cxx;
^
css/ThesaurusDict.cpp:79:15: warning: result of comparison against a string
literal is unspecified (use strncmp instead) [-Wstring-compare]
if (filename == "-") {
^ ~~~
css/ThesaurusDict.cpp:116:15: warning: result of comparison against a string
literal is unspecified (use strncmp instead) [-Wstring-compare]
if (filename != "-") {
^ ~~~
2 warnings and 1 error generated.
make[2] : *** [ThesaurusDict.lo] Error 1
make[1]: *** [install-recursive] Error 1

经过搜寻资料,最后得知是因为编译器版本太高导致的,那我也不想去降低编译器的版本,通过修改源代码,解决了该问题:

进入到源代码包目录:即coreseek-3.2.14所在目录,cd mmseg-3.2.14/src/css,找到文件:ThesaurusDict.h

在头部找到:#include <string>

再其下加入一行代码:#include <ext/hash_map>

再回到mmseg-3.2.14目录,执行make编译操作,顺利完成,最后就可以接着执行安装操作了。

(2)OK,mmseg中文分词是安装完成了,此时接着安装sphinx,编译的过程中,又遇到了问题:

phinxexpr.cpp:1047:11: error: use of undeclared identifier 'ExprEval'
                T val = ExprEval ( this->m_pArg, tMatch ); // 'this' fixes gcc ...

编译过程中,出现了无数个关于此函数:ExprEval(this->m_pArg, tMatch)的错误,进入:cd csft-3.2.14/src目录,找到源代码:sphinxexpr.cpp文件,

搜索:T val = ExprEval ( this->m_pArg, tMatch )此函数,将该文件的所有关于此函数ExprEval()的调用,在其前面加上this->对象,即替换为:

T val = this -> ExprEval ( this->m_pArg, tMatch );

再执行make编译操作,此时顺利完成编译,接着就能执行make install 安装操作了。

这个问题也是由于gcc编译器版本的问题导致了。

接着再结合coreseek官方文档,完成测试操作。