编译hyperscan

安装依赖

boost 1.84.0

安装Boost库通常需要以下步骤:

  1. 解压文件: 打开终端,导航到包含boost_1_84_0.tar.gz文件的目录,然后运行以下命令来解压文件:

    tar -xzvf boost_1_84_0.tar.gz

    这将在当前目录下创建一个名为boost_1_84_0的文件夹,其中包含Boost库的源代码。

  2. 进入Boost目录: 使用cd命令进入解压后的Boost目录:

    cd boost_1_84_0
  3. 执行Bootstrap: 运行bootstrap.sh脚本,该脚本将生成一个b2bjam二进制文件,用于构建和安装Boost库:

    ./bootstrap.sh

    如果没有错误,将会生成一个名为b2bjam的可执行文件。

  4. 构建并安装Boost: 使用生成的b2bjam工具构建和安装Boost库。下面的命令将使用默认配置构建和安装Boost:

    ./b2

    如果你想指定安装目录,可以使用--prefix选项,例如:

    ./b2 --prefix=/your/installation/path

    最后,使用./b2 install命令来安装Boost库:

    ./b2 install

    完成后,Boost库就会被安装在指定的目录中。

ragel 6.10

automake为ragel的前置依赖,须先安装automake

  1. 进入源代码目录: 切换到解压缩后的 Automake 目录:

    cd automake-1.16

  2. 配置、编译和安装: 执行以下命令:

    ./configure

     make

     sudo make install

这将配置、编译并安装 Automake。sudo 可能需要输入管理员密码。

在 Linux 系统上安装 Ragel 的步骤通常包括以下几个阶段:

  1. 下载 Ragel: 你可以从 Ragel 的官方网站或其他来源下载 Ragel 的源代码。

  2. 解压源代码: 下载后,使用 tar 命令解压缩源代码。假设你的文件名是 ragel-6.10.tar.gz,执行:

    tar -xzvf ragel-6.10.tar.gz

  3. 进入源代码目录: 切换到解压缩后的 Ragel 目录:

    cd ragel-6.10

  4. 编译和安装: 执行以下命令编译和安装 Ragel:

    ./configure make sudo make install

    上述命令将自动检测系统的配置,并编译、安装 Ragel。请注意,sudo 可能需要输入管理员密码。

  5. 验证安装: 安装完成后,你可以验证 Ragel 是否成功安装。执行以下命令检查 Ragel 的版本:

    ragel -v

    如果成功安装,将显示 Ragel 的版本信息。

pcap

我安装的是1.8.1版本

1
2
3
/configure --prefix=/opt/
make -j 20
make install

dbus

我安装的是dbus-1.11.12版本

1
2
3
/configure --prefix=/opt/
make -j 20
make install

最后准备

修改一下CMakefileList 加入头文件和lib依赖目录

1
2
3
4
5
6
7
8
9
10
ln -s /opt/boost_1_65_1/boost <hyperscan-src>/include/boost
include_directories(${PROJECT_SOURCE_DIR}/src)
include_directories(${PROJECT_BINARY_DIR})
include_directories(SYSTEM include)
include_directories(/opt/include)   <----------

include (${CMAKE_MODULE_PATH}/boost.cmake)

link_directories("/opt/lib")     <---------------

安装hyperscan

1
2
3
4
cd <where-you-want-to-build-hyperscan>
mkdir <build-dir>
cd <build-dir>
cmake -G "Unix Makefiles" -DCMAKE_C_COMPILER=/opt/compiler/gcc-4.8.2/bin/gcc  -DCMAKE_INSTALL_PREFIX=/opt/ ../

在编译的时候会提示ELSE分支问题,需要修改一下

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (FAT_RUNTIME)
    if (NOT HAVE_SSSE3)
        message(FATAL_ERROR "SSSE3 support required to build fat runtime")
    endif ()
    if (NOT HAVE_AVX2)
        message(FATAL_ERROR "AVX2 support required to build fat runtime")
    endif ()
    if (BUILD_AVX512 AND NOT HAVE_AVX512)
        message(FATAL_ERROR "AVX512 support requested but not supported")
    endif ()
else (NOT FAT_RUNTIME)
    if (NOT HAVE_AVX2)
        message(STATUS "Building without AVX2 support")
    endif ()
    if (NOT HAVE_AVX512)
        message(STATUS "Building without AVX512 support")
    endif ()
#else (NOT FAT_RUNTIME)
#    if (NOT HAVE_SSSE3)
#        message(FATAL_ERROR "A minimum of SSSE3 compiler support is required")
#    endif ()
endif ()

注释掉上面的4行,否则编译不过

各种检查通过以后,会生成我们想要的make file,然后执行

1
2
make -j 20
make install

编译的过程是很慢的,可以喝杯茶等着。
最后在我们/opt里有的lib和include头文件,第三方用这个就可以了

目前的hyperscan安装步骤:

cmake -DBOOST_ROOT=/home/yangsc/boost_1_84_0 ../
  • 16
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值