使用nmake在windows平台下编译xapian

时间:2021-01-02 04:55:01
搜索引擎来网上找了一下,流行的有CLucene、sphinx和Xapian等等,听说Clucene的代码质量一般,而Xapian则支持中文全文检索,于是目标指向Xapian。

       Xapian的官方网站是www.xapian.org,上去看了一下,最新版本是1.0.12,打开http://www.xapian.org/download一眼看上去全是*nix下的版本,拉到最下面终于看到了Compiling on MS Windows with MSVC的字眼,这是一个哥们制作的在Win32平台下生成Xapian的东东。

       进行http://lemurconsulting.com/Products/Xapian/Overview.shtml,发现最新只支持Xapian version 1.0.11,而http://www.xapian.org/download只提供1.012版本下载,咋办?查看了一下Xapian的下载链接是这样的http://oligarchy.co.uk/xapian/1.0.12/xapian-core-1.0.12.tar.gz,一个好的程序员当然有好的习惯。因此如无意外1.0.11版本的下载链接应该是这样的http://oligarchy.co.uk/xapian/1.0.11/xapian-core-1.0.11.tar.gz,试了一下果真如此,而omegaxapian-bindings,Search::Xapian等相关的东东也可以用同样的道理下载。

       Build过程其实不复杂,按着readme.txt里的提示做一次就可以了,不过有些朋友可能懒得看英文,我将重点部分列一下。

1.        建一个目录,将xapian-core、omega(这是一个例子项目)、xapian-bindings(这个是提供给其它语言的接口)解压后按以下路径放置:

xapian/

xapian/xapian-core-0.x.y

xapian/xapian-bindings-0.x.y

xapian/omega-0.x.y

2.         下载http://www.zlib.net/zlib123-dll.zip,这是xapian用到的一个压缩类库。下载后可以解压到任意目录。我这里是E盘,目录结构如下:

E:/comlib/zlib123

E:/comlib/zlib123/ include

E:/comlib/zlib123/ lib

E:/comlib/zlib123/ test

3.         你还需要Perl,可以到http://www.activestate.com/Products/ActivePerl/下载,默认安装在c:/Perl。

4.         (可选)如果你还需要编译PHP,Ruby等语言上的接口,请看readme.txt里的提示,我这里只编译c版本的。

5.         到http://lemurconsulting.com/Products/Xapian/Overview.shtml里下载http://lemurconsulting.com/Products/Xapian/1011/win32.zip,并解压到xapian/xapian-core-0.x.y/win32下,现在目录结构变成了如下:

xapian/

xapian/xapian-core-0.x.y/win32

xapian/xapian-bindings-0.x.y

xapian/omega-0.x.y

6.         进入xapian/xapian-core-0.x.y/win32,里面有一个makedepend的文件夹,大家里看到一个熟悉的makedepend.dsp文件,这是一个vc项目,运行后编译生成makedepend.exe,将makedepend.exe放到win32文件夹下。

7.         来到关键步骤了,进入xapian/xapian-core-0.x.y/win32,用记事本或ue等文本编辑工具打开config.mak.。

a)、搜索“Perl folder”,将PERL_DIR这个宏的值改为你机上的perl的安装目录,如果上面步骤3所设的c:/perl。

b)、搜索“ZLIB_DIR”,将ZLIB_DIR这个宏的值改为你机上的zlib的目录,如上面步骤2所设的E:/comlib/zlib123。

8.    我们需要在命令行下编译,因此最佳选择是用Visual Studio命令行提示工具,从开始—程序--  Microsoft Visual Studio 2005-- Visual Studio Tools里可以运行Visual Studio 2005 命令提示工具。不过先别急,我们还有一个重要步骤。找到你机上的vs的安装目录,进入如下目录,例:D:/Microsoft Visual Studio 8/Common7/Tools,用文本编辑工具打开vsvars32.bat,我们需要在这里将zlib增加到类路径中。

a)、找到第16行左右,在@set PATH后面加上E:/comlib/zlib123。

b)、在下一行的@set INCLUDE后面加上E:/comlib/zlib123/ include。

c)、在下一行的@set LIB后面加上E:/comlib/zlib123/ lib。

d)、在下一行的@set LIBPATH后面加上E:/comlib/c++/zlib/lib。

具体zlib的目录请按照你机上的,用过vs的朋友大概都知道是啥回事了。

9.       这时可以运行Visual Studio 2005 命令提示工具了,使用cd命令进入:xapian/xapian-core-0.x.y/win32下,如果是编译debug版本则键入nmake DEBUG=1,如果是编译release版本,则键入nmake就可以,回车后发现log出一大堆信息,经过n分钟的编译与链接后,我们会发现在xapian/xapian-core-0.x.y/win32目录下出现一个debug或release的目录。

10.    当然你也可以建一个vc的工程,然后将头文件和cc文件添加到工程里,然后设置编译和链接路径。