一寒假,好吧我又回来了,工作找的不容易,还是留在FZ好好干吧,最近组长又安排了一个工作,内容贯穿2014年上半年,主要是CoreSeek的组建和二次开发,本周主要是搭建起CoreSeek和研读源码,2014要好好地积累知识和总结,新年第一篇博客就从这里写起吧。
一 准备工作
下载并安装MySQL(需要支持mysql时安装)
下载并安装LibExpat(用于xml文档的解析)
下载并安装LibIConv(用于字符集的转换)
下载并安装python26(需要支持python时安装)
下载并安装CoreSeeK(我们研究的源码,这里采用)
假定所有的软件均安装在默认目录中。
二 源代码编译
在编译coreseek-3.2.14之前,在libsphinx工程中,加入 py_helper.cpp(h) 、 py_layer.cpp(h) 、 py_source.cpp(h) 、 tokenizer_zhcn.cpp(h) 、py_sphinx.c文件,这些文件在源代码工程中已经存在,不知何原因没有被加入到工程。
-
按需求修改sphinx.h头文件
sphinx.h 头文件定义(coreseek-3.2.14)
#define USE_MYSQL 1 /// whether to compile MySQL support
#define USE_PGSQL 0 /// whether to compile PgSQL support
#define USE_ODBC 0 /// whether to compile ODBC support
#define USE_LIBEXPAT 1 /// whether to compile libexpat support
#define USE_LIBICONV 1 /// whether to compile iconv support
#define USE_LIBXML 0 /// whether to compile libxml support
#define USE_LIBSTEMMER 0 /// whether to compile libstemmber support
#define USE_WINDOWS 1 /// whether to compile for Windows
#define USE_MMSEG 1 /// turn chinese segment on.
#define USE_CRFSEG 0 /// turn chinese segment on.
#define USE_PYTHON 1
#define USE_64BIT 0
添加mysql 的include路径(C:\Program Files (x86)\MySQL\MySQL Server 5.6\include) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加mysql的lib路径(C:\Program Files (x86)\MySQL\MySQL Server 5.1\lib\opt) 到除 "libsphinx"之外的所有工程 (右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)
添加LibExpat的路径(C:\Program Files (x86)\Expat 2.0.1\Bin)到除 "libsphinx"之外的所有工程 (右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)
添加LibIConv 的路径(C:\Program Files (x86)\GnuWin32\lib)到除 "libsphinx"之外的所有工程 (右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)
添加python的include路径(C:\python26\include) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录)
添加mmseg(coreseek的源码中)的css路径({coreseek位置}\mmseg-3.2.14\src\css) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加mmseg(coreseek的源码中)的utils路径({coreseek位置}\mmseg-3.2.14\src\utils) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加mmseg(coreseek的源码中)的src路径({coreseek位置}\mmseg-3.2.14\src) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加expat的lib路径(C:\Program Files (x86)\Expat 2.0.1\Source\lib) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加LibIConv的Include路径(C:\Program Files (x86)\GnuWin32\include) 到所有工程 (右击 - 属性- 配置属性 - C/C++ - 常规- 附加包含目录).
添加python的lib路径(C:\python26\libs)到除 "libsphinx"之外的所有工程 (右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)
在网址http://download.csdn.net/detail/nextel/4577926下载iconv.lib,在coreseek的源文件夹src建文件夹lib,并将iconv.lib放入其中。
打开libcss工程({coreseek目录}\mmseg-3.2.14\src\win32\libcss05.vcproj),并将该工程的运行时库改成“多线程(/MT)”,具体:右键-》配置属性-》c/c++-》代码生成。如果为release版本编译产生libcss.lib,如果为debug版本产生libcss.lib并修改名字为libcssd.lib
将产生的libcss.lib(libcss.lib)拷贝到14步中的lib文件夹中。
添加第14步的lib路径到除 "libsphinx"之外的所有工程 (右击 - 属性- 配置属性 - 连接器- 常规-附加包含目录)
逐个对每个项目进行编译即可
本文出自 “博の客” 博客,请务必保留此出处http://frankiewb.blog.51cto.com/8202664/1358470