将开源clucene引擎编译成动态库
本章介绍如何将clucene编译成动态库,开发桌面级的全文检索引擎。
1.准备工具
编译平台:windows 10
代码编译工具:vs2010
CMake版本:cmake-3.17.1-win64-x64
源代码版本:clucene-core-2.3.3.4
Zlib版本:zlib-1.2.3.exe
相关工具以及代码下载位置,里面包含详细文档:点击下载
2.安装zlib
这里安装zlib只是为了方便,不用再去编译zlib库到引擎源码中,当然也可以自己去编译,安装完成之后,在安装的bin目录 (C:\Program Files (x86)\GnuWin32\bin)会生成只有一个zlib1.dll动态链接库,这个库待会使用。
3.CMake编译项目
首先解压源代码clucene-core-2.3.3.4.tar,然后解压cmake-3.17.1-win64-x64.zip工具,然后找到bin目录下的cmake-gui.exe工 具,双击执行,如图所示:
然后找到源代码目录,新建一个win32的文件夹,主要是用于存放CMake生成的vs项目工程文件,
在生成之前,首先需要在vs的库中添加一个头文件,因为源代码中引用的这个头文件,该头文件为linux中使用的,windows中没有,新建一个文件头,名称为:unistd.h,内容为:
然后将该文件放到对应版本的vs安装目录的include中,如图所示:
然后在CMake工具中配置源代码路径信息,如图:
然后在点击config,选择生成的目标编译工具。
然后点击完成,开始配置,需要等几分钟,如图:
然后我们点击generate,生成项目文件,生成之后找到我们创建的win32目录下就看到我们对应的vs项目文件了,如图:
然后就可以用vs进行打开,但是这个项目代码的路径是不能移动的,CMake是根据绝对路径去生成的,移动之后,vs就找不到相应的路径。这可能是CMake的一个BUG。
4.修改项目BUG
修改项目中的BUG,找到demo项目,然后打开,如图:
然后依次编译clucene-shared、clucene-core、cl_demo项目,在编译cl_demo项目之前,修改修改一下源代码,不然检索的时候不能定位文件。
改完之后,然后开始编译,然后运行demo项目,在运行demo项目会报错,因为找不到zlib1.dll,找到之前我们安装的zlib的bin目录,然后将zlib1.dll拷贝到生成目录,如图:
然后再次运行demo项目,如图:
第一次是让我们输入将要被建立索引的原始内容所在的目录,这个目录我放了三个文本文件,如图:
Demo项目会读取这三个文件的内容然后建立索引。
第二次输入为建立索引的目录,demo会自动创建索引,如图:
然后我们可以开始搜索测试
可以看到根据我们搜索的内容然后查找到对应的文件。
编译动态库到此讲解完毕,下一节我们讲解如何编译静态库,编译静态库需要修改项目配置,也可能是项目上遗留的BUG。Z转载请注明原文地址,编写博客不容易。