---
title: 编译
description: "1. 获取Hyperscan源码包。"
url: https://www.hikunpeng.com/document/detail/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hyperscan_02_0009.html
sourcePath: /source/zh/kunpengboostkithistory/2200/accel/kunpengaccel_hyperscan_02_0009.html
indexId: 889689475061a75f261aa49576887c250c047547a4ecdc2dce1155360140d7ba80
---
# 编译

1. 获取Hyperscan源码包。

```
wget https://codeload.github.com/kunpengcompute/hyperscan/zip/aarch64
```


2. 解压源码包。

```
unzip hyperscan-aarch64.zip
```


3. 进入Hyperscan源码目录。

```
cd hyperscan-aarch64
```


4. 添加Boost头文件。

```
ln -s
{boost_path}
/boost include/boost
```


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

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

  a. 将解压后的pcre-8.43文件夹拷贝到Hyperscan源码目录下并重命名为pcre文件夹。

```
cp -rf ./pcre-8.43 hyperscan-aarch64/pcre
```


  b. 打开“pcre/CMakeLists.txt”文件。

```
vim hyperscan-aarch64/pcre/CMakeLists.txt
```


  c. 将拷贝后的“pcre/CMakeLists.txt”文件中第77行注释掉，如下所示。

```
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.0)
#CMAKE_POLICY(SET CMP0026 OLD)
```


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

  d. 按“Esc”键，输入:wq!并按“Enter”键保存并退出编辑。
6. 编译源码静态库。
编译选项默认为release模式编译静态库。

  a. 进入Hyperscan源码目录。

```
cd Hyperscan-aarch64
```


  b. 创建“build”目录。

```
mkdir -p build
```


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

```
cd build
```


  d. 执行编译。

```
cmake ..
```

```
make -j32
```


编译完成后，默认生成Hyperscan的静态库和测试程序：
编译完成生成的测试程序：
生成的静态库：
7. 编译源码动态库。
  在执行编译命令中增加生成动态库编译选项：-DBUILD_SHARED_LIBS=ON。

```
cmake .. -DBUILD_SHARED_LIBS=ON
```


  生成的动态库：
