鲲鹏社区首页
中文
注册
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

编译Hyperscan

在Hyperscan源码目录下添加Boost头文件和PCRE依赖库,最后进行源码静态库、动态库或Debug模式的编译。

  1. 进入Hyperscan源码目录。
    1
    cd hyperscan-v5.4.2.aarch64
    
  2. 添加Boost头文件。
    1
    ln -s {boost_path}/boost include/boost
    

    编译依赖Boost头文件,{boost_path}即boost_1_69_0.tar.gz解压后的全路径,此处boost_path推荐使用绝对路径。

  3. 添加PCRE依赖库。

    源码hscollider工具编译依赖于PCRE工具。

    1. 将解压后的pcre-8.43文件夹拷贝到Hyperscan源码目录下并重命名为pcre文件夹。
      1
      cp -rf ./pcre-8.43 hyperscan-v5.4.2.aarch64/pcre
      
    2. 打开“pcre/CMakeLists.txt”文件。
      1
      vim hyperscan-v5.4.2.aarch64/pcre/CMakeLists.txt
      
    3. “i”键进入编辑模式,将拷贝后的“pcre/CMakeLists.txt”文件中第77行注释掉,如下所示。
      CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
      #CMAKE_POLICY(SET CMP0026 OLD)

      CMakeLists.txt文件中第77行命令在低于2.8.1及以下的版本下无法识别且不影响功能,故需要将其注释掉。也可以通过升级系统CMake版本为3.0及以上解决上述CMAKE_POLICY命令无法识别问题。

    4. “Esc”键,输入:wq!并按“Enter”键保存并退出编辑。
  4. 编译源码。
    1. 进入Hyperscan源码目录。
      1
      cd hyperscan-v5.4.2.aarch64
      
    2. 创建“build”目录。
      1
      mkdir -p build
      
    3. 进入创建好的“build”目录。
      1
      cd build
      
    4. 执行编译。
      编译支持release模式和debug模式,默认为release模式。编译后会生成静态库和动态库,默认生成静态库。
      • 编译源码静态库。编译选项默认为release模式编译静态库。
        1
        2
        cmake ..
        make -j32
        

        编译完成后,默认生成Hyperscan的静态库和测试程序:

        编译完成生成的测试程序:

        生成的静态库:

      • 编译源码动态库。在执行编译命令中增加生成动态库编译选项:-DBUILD_SHARED_LIBS=ON。
        1
        cmake .. -DBUILD_SHARED_LIBS=ON
        

        生成的动态库:

      • 编译源码debug模式。在执行编译命令中增加生成动态库编译选项:-DCMAKE_BUILD_TYPE=DEBUG。
        1
        cmake .. -DCMAKE_BUILD_TYPE=DEBUG