将开源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工       具,双击执行,如图所示:

     将开源clucene引擎编译成动态库

     然后找到源代码目录,新建一个win32的文件夹,主要是用于存放CMake生成的vs项目工程文件,

      将开源clucene引擎编译成动态库

      在生成之前,首先需要在vs的库中添加一个头文件,因为源代码中引用的这个头文件,该头文件为linux中使用的,windows中没有,新建一个文件头,名称为:unistd.h内容为:

      将开源clucene引擎编译成动态库

      然后将该文件放到对应版本的vs安装目录的include中,如图所示:

       将开源clucene引擎编译成动态库

     然后在CMake工具中配置源代码路径信息,如图:

     将开源clucene引擎编译成动态库

      然后在点击config,选择生成的目标编译工具。

      将开源clucene引擎编译成动态库

      然后点击完成,开始配置,需要等几分钟,如图:

      将开源clucene引擎编译成动态库

      然后我们点击generate,生成项目文件,生成之后找到我们创建的win32目录下就看到我们对应的vs项目文件了,如图:

       将开源clucene引擎编译成动态库

       然后就可以用vs进行打开,但是这个项目代码的路径是不能移动的,CMake是根据绝对路径去生成的,移动之后,vs就找不到相应的路径。这可能是CMake的一个BUG。

      4.修改项目BUG

       修改项目中的BUG,找到demo项目,然后打开,如图:

        将开源clucene引擎编译成动态库

        将开源clucene引擎编译成动态库

        然后依次编译clucene-shared、clucene-core、cl_demo项目,在编译cl_demo项目之前,修改修改一下源代码,不然检索的时候不能定位文件。

        将开源clucene引擎编译成动态库

        改完之后,然后开始编译,然后运行demo项目,在运行demo项目会报错,因为找不到zlib1.dll,找到之前我们安装的zlib的bin目录,然后将zlib1.dll拷贝到生成目录,如图:

        将开源clucene引擎编译成动态库
      然后再次运行demo项目,如图:

      将开源clucene引擎编译成动态库

      将开源clucene引擎编译成动态库

      第一次是让我们输入将要被建立索引的原始内容所在的目录,这个目录我放了三个文本文件,如图:

      将开源clucene引擎编译成动态库

       

     Demo项目会读取这三个文件的内容然后建立索引。

     第二次输入为建立索引的目录,demo会自动创建索引,如图:

      将开源clucene引擎编译成动态库

      然后我们可以开始搜索测试

      将开源clucene引擎编译成动态库

      可以看到根据我们搜索的内容然后查找到对应的文件。

      编译动态库到此讲解完毕,下一节我们讲解如何编译静态库,编译静态库需要修改项目配置,也可能是项目上遗留的BUG。Z转载请注明原文地址,编写博客不容易。