解决Sphinx iconv 链接出错的问题。

建站交流11年前 (2014-06-25)26840

错误信息:

mv -f .deps/sphinx.Tpo .deps/sphinx.Po
rm -f libsphinx.a
ar cru libsphinx.a sphinx.o sphinxexcerpt.o sphinxquery.o sphinxsoundex.o sphinxmetaphone.o sphinxstemen.o sphinxstemru.o sphinxstemcz.o sphinxutils.o md5.o sphinxstd.o sphinxsort.o sphinxexpr.o sphinxfilter.o sphinxsearch.o sphinxrt.o  tokenizer_zhcn.o
ranlib libsphinx.a
g++  -Wall -g -D_FILE_OFFSET_BITS=64 -O3 -DNDEBUG   -o indexer indexer.o libsphinx.a  -rdynamic -L/usr/lib64/mysql -lmysqlclient -lz -lcrypt -lnsl -lm -lssl -lcrypto  -L/usr/local/mmseg3/lib/ -lmmseg -ldl -lm -lz -lexpat  -L/usr/local/lib -lrt  -lpthread
libsphinx.a(sphinx.o): In function `xmlUnknownEncoding':
/usr/local/src/sphinx/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22292: undefined reference to `libiconv_open'
/usr/local/src/sphinx/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22310: undefined reference to `libiconv'
/usr/local/src/sphinx/coreseek-4.1-beta/csft-4.1/src/sphinx.cpp:22316: undefined reference to `libiconv_close'
collect2: ld 返回 1
make[2]: *** [indexer] 错误 1
make[2]: Leaving directory `/usr/local/src/sphinx/coreseek-4.1-beta/csft-4.1/src'
make[1]: *** [all] 错误 2
make[1]: Leaving directory `/usr/local/src/sphinx/coreseek-4.1-beta/csft-4.1/src'
make: *** [all-recursive] 错误 1


第一种方法,修改Makefile 文件,增加

LIBS = -lm -lexpat -L/usr/local/lib
改成
LIBS = -lm -lexpat -liconv -L/usr/local/lib

第二种,直接修改 src/sphinx.cpp,将iconv.h 改为绝对路径。

I have the same problem, and I change #include "iconv.h" to #include <iconv.h> to
#include </usr/include/iconv.h>
And make run ok !

第三种解决办法:打开configure文件,找到“#define USE_LIBICONV 1”,将注释去掉,并将1改成0。


标签: Sphinx

“解决Sphinx iconv 链接出错的问题。” 的相关文章

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。