標籤:http strong os 檔案 問題 re
根據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 nameusing namespace __gnu_cxx;^css/ThesaurusDict.cpp:79:15: warning: result of comparison against a stringliteral is unspecified (use strncmp instead) [-Wstring-compare]if (filename == "-") {^ ~~~css/ThesaurusDict.cpp:116:15: warning: result of comparison against a stringliteral is unspecified (use strncmp instead) [-Wstring-compare]if (filename != "-") {^ ~~~2 warnings and 1 error generated.make[2] : *** [ThesaurusDict.lo] Error 1make[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檔案,
搜尋:ExprEval ( this->m_pArg, tMatch )此函數,將該檔案的所有關於此函數ExprEval ( this->m_pArg, tMatch )的調用,在其前面加上this->對象,即替換為:
this->ExprEval ( this->m_pArg, tMatch );
再執行make編譯操作,此時順利完成編譯,接著就能執行make install 安裝操作了。
這個問題也是由於gcc編譯器版本的問題導致了。
接著再結合coreseek官方文檔,完成測試操作。
(3)測試時,
$ /usr/local/coreseek/bin/indexer -c etc/csft.conf --all
報錯:
dyld: Library not loaded: libmysqlclient.18.dylib Referenced from: /usr/local/coreseek/bin/indexer Reason: image not foundTrace/BPT trap: 5
解決辦法是:
$ sudo ln -s /usr/local/mysql/lib/libmysqlclient.18.dylib /usr/lib/libmysqlclient.18.dylib