---
title: 编译Hyperscan
description: "在Hyperscan源码目录下添加Boost头文件和PCRE依赖库，最后进行源码静态库、动态库或Debug模式的编译。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hyperscan_02_0009.html
sourcePath: /source/zh/kunpengboostkithistory/251RC1/accel/kunpengaccel_hyperscan_02_0009.html
indexId: fc74fef56a697fd30e6cd3a353259b79f0e73a183f43f786d3a01a94f51b2c3b82
---
# 编译Hyperscan

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

1. 进入Hyperscan源码目录。
  1 cd hyperscan

2. 添加Boost头文件。
  1 ln -s {boost_path}/boost include/boost

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

3. 添加PCRE依赖库。
源码hscollider工具编译依赖于PCRE工具。

  a. 切换到“pcre-8.43”下载目录，将解压后的pcre-8.43文件夹拷贝到Hyperscan源码目录下并重命名为pcre文件夹。
    1 cp -rf ./pcre-8.43 hyperscan/pcre

  b. 打开“pcre/CMakeLists.txt”文件。
    1 vim hyperscan-v5.4.2.aarch64/pcre/CMakeLists.txt

  c. 按“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命令无法识别问题。

  d. 按“Esc”键，输入:wq!并按“Enter”键保存并退出编辑。
4. 编译源码。

  a. 进入Hyperscan源码目录。
    1 cd hyperscan

  b. 创建“build”目录。
    1 mkdir -p build

  c. 进入创建好的“build”目录。
    1 cd build

  d. 执行编译。
    编译支持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
