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,试了一下果真如此,而omega、xapian-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文件添加到工程里,然后设置编译和链接路径。