Hyperscan 安装

article/2025/6/8 3:44:49

源码下载

Ragel :http://www.colm.net/files/ragel/ragel-6.9.tar.gz

boost :http://downloads.sourceforge.net/project/boost/boost/1.60.0/boost_1_60_0.tar.gz

hyperscan : https://download.csdn.net/download/u014608280/12745509

 

第3方依赖库¶

依赖项版本说明
CMake>=2.8.11 
Ragel6.9 
Python2.7 
Boost>=1.57仅需要头文件,无需编译
Pcap>=0.8Optional: 仅用于示例程序
SQLite?Optional: 用于编译hsbench
g++、gcc>v4.8.1 

 

 一、Ragel 安装

1、tar -xvf ragel-6.10.tar.gz
2、cd ragel-6.10
3、./configure 
4、 make -j
5、 make install 

二、boost

boost不需要编译安装 ,如果通过系统包管理工具(yum/apt-get)安装的 版本无法满足版本需要,

解压后执行类似 ln -s /home/boost_1_59_0/boost hyperscan-4.6.0/include/boost-patched 的命令创建符号链接,注意boost路径需要是绝对路径,否则可能找不到。或者使用下文描述的BOOST_ROOT选项.(个人尝试ln方法不行, BOOST_ROOT 方法可以

三、hyperscan 安装

在 hyperscan 源码的平级目录

1、mkdir hs_build
2、cd hs_build
3、cmake -DCMAKE_BUILD_TYPE=Debug -DBUILD_SHARED_LIBS=on -DDEBUG_OUTPUT=on -DBOOST_ROOT=/home/boost_1_59_0 ../hyperscan
4、make- j
5、make install
6、cmake –build .

其中  BOOST_ROOT 是指定boost路径,DDEBUG_OUTPUT 是hyperscan的调试信息 on是打开,会有很多信息输出。

参数描述
CMAKE_C_COMPILERC compiler to use. Default is /usr/bin/cc.
CMAKE_CXX_COMPILERC++ compiler to use. Default is /usr/bin/c++.
CMAKE_INSTALL_PREFIXInstall directory for install target
CMAKE_BUILD_TYPEDefine which kind of build to generate. Valid options are Debug, Release, RelWithDebInfo, and MinSizeRel. Default is RelWithDebInfo.
BUILD_SHARED_LIBSBuild Hyperscan as a shared library instead of the default static library.
BUILD_STATIC_AND_SHAREDBuild both static and shared Hyperscan libs. Default off.
BOOST_ROOTLocation of Boost source tree.
DEBUG_OUTPUTEnable very verbose debug output. Default off.
FAT_RUNTIMEBuild the fat runtime. Default true on Linux, not available elsewhere.
OPTIMISETurns off compiler optimizations(默认TRUE)

 

我的编译过程

如果遇到如下错误说明g++版本太低,需要升级

查看g++动态库

升级参考这个文章https://blog.csdn.net/u014608280/article/details/80569328

编译example程序

gcc -o simplegrep simplegrep.c -lhs -lstdc++ -lm

对比结果


http://chatgpt.dhexx.cn/article/bub19DKb.shtml

相关文章

centos 8 编译安装hyperscan

一、编译安装环境配置 官方文档: http://intel.github.io/hyperscan/dev-reference/getting_started.html 1.1硬件配置 配置参数CPUIntel Xeon Gold 5218R CPU 2.10GHzCPU核数8核 注:需要满足以下条件 1、X86架构 2、Supplemental Streaming SIMD E…

ubuntu20.04下源码安装hyperscan库安装记录

安装测试环境: vmware-ubuntu20.04,gcc 4.8.5,ragel-6.10.tar.gz,boost_1_69_0.tar.gz,hyperscan-5.1.0.tar.gz 1.安装ragel(必须的依赖包)1MB: 下载地址:http://www.…

基于CentOS 8 系统环境下的 Snort 3 安装指南

O、 阅读要求 本教程并不适合初学者,大家在阅读本文之前,需具备CentOS 8 Linux、Snort 2.9的成功安装经验。本次安装对网络依赖很大,所以大家一定要将网络状态调节好,本指南介绍的内容,仅在测试环境中使用。 一、环境…

msys2+mingw64+ragel安装

[msys2mingw64ragel安装] [简介] 这几天部门老大让解析几个东西,要求用ragel编写,在Windows环境下,要运用到mingw64,安装时发现mingw里没有pacman,需要现安装,然后发现Wget也没有。。。,所以改…

Ragel State Machine Compiler 的速度测试

据说Ragel生成的自动机程序,速度飞快,特地测试了一下,所得结果如下。 测试环境: VC6 Release下编译 测试规模: 一亿次 测试用例: Ragel编译r_atoi.rl文件 vs crt lib的 atoi函数 测试结果&…

Hello Ragel -- 生成状态机的神器

Ragel 是个很 NB 的能生成状态机的编译器,而且支持一堆语言:C、C、Object-C、C#、D、Java、Go 以及 Ruby。 原来的文本解析器是用正则表达式实现的,随着状态(if-else)越来越多,修改越来越麻烦。。。 安装 M…

嵌入式系统开发流程

一、嵌入式系统开发流程 1、系统需求分析:根据需求,确定设计任务和设计目标,指定设计说明书。 2、体系结构设计:描述系统如何实现所述的功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型。 …

嵌入式系统开发设计

嵌入式系统开发设计 嵌入式系统设计的主要任务是定义系统的功能、决定系统的架构,并将功能映射到系统实现架构上。系统架构既包括软件系统架构也包括硬件系统架构。 嵌入式系统设计具有以下特点: 软、硬件协同并行开发; 微处理器的类型多种…

嵌入式系统的概念,嵌入式系统的组成及特点,嵌入式系统的基本开发流程

1. 嵌入式系统的概念 嵌入式系统( Embedded system) , 是一种 "完全嵌入受控器件内部,为特定应用而设计的专用计算机系统”以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗等严格要求的专用计算机系统。 2 . 嵌入式系统的组…

配置嵌入式系统开发环境(教程)

配置嵌入式系统开发环境 前言一. 安装VMware Workstation?二、在虚拟机中安装Windows XP镜像1.创建虚拟机启动虚拟机进入PE系统 关于pdf中预实验的补充说明 前言 嵌入式实时操作系统及应用开发(第三版)罗蕾主编光盘镜像 链接:htt…

嵌入式Linux系统开发笔记(七)

嵌入式Linux系统开发笔记(七) 七、U-Boot基础 1.概述 在移植 Linux之前我们需要先移植一个 bootloader 代码,这个 bootloader 代码用于启动 Linux 内核, bootloader有很多,常用的就是 U-Boot。 移植好 U-Boot 以后再…

迅为-iMX6ULL开发板原创嵌入式开发文档系统化学习

iTOP-IMX6ULL核心板采用单核Cortex-A7架构,主频高达528 MHz,CPU集成电源管理,146 PIN引脚全部引出。核心板接口引出串口8路、CAN 2路、网口2路、I2C1路、SPI 2路、PWM8路、ADC5路、USB1路等功能。核心板在IMX6UL开发板上进行了深度优化&#…

Vxworks嵌入式开发系统入门基础概念学习

1.VxWorks应用 自动化设备、工业控制(实时性好)、军用设备以及消费电子。 2.实时性 实时性包括硬实时、软实时。硬实时系统有一个刚性的、不可改变的deadlines,它不允许任何超出deadlines的错误。而软实时是一个柔性灵活的,它可以…

嵌入式系统的开发流程

嵌入式系统的开发流程 摘要:本文以 HHARM9-EDU为例,简要说明一下嵌入式系统的开发流程。 整个流程很简单,流程图如下: 一、配置Linux及MINIGUI ①配置Linux: 由于 HHARM9-EDU推荐使用Redhat 9,所以这里只介…

嵌入式开发系统的简介

小白日志(一) 嵌入式开发系统的简介 嵌入式系统是一种以硬件为载体,以计算机技术为基础,以应用程序为核心,满足特定功能、要求以及应用环境的专用计算机系统。所谓“嵌入式”,顾名思义,嵌入到…

嵌入式系统开发环境概述

嵌入式系统开发环境主要包括: 集成开发工具交叉编译器批处理文件makefileLink Script调试工具下载工具其它工具(Offline Tools)模拟器版本控制工具 接下来分别讲解以上各个工具: 1、集成开发工具 一般CPU厂商会提供针对该CPU的集成开发环境(IDE)&…

嵌入式系统概述3-嵌入式系统的开发流程和学习基础、方法

嵌入式系统的开发流程 以带有操作系统的32位微处理器为核心的嵌入式系统为例: 第一步:建立开发环境 操作系统一般使用Redhat Linux,选择定制安装或全部安装,通过网络下载相应的GCC交叉编译器进行安装(比如,arm-linu…

嵌入式系统开发概述

1、嵌入式系统是什么 2、嵌入式系统的组成 3、嵌入式开发与传统单片机开发不同 4、嵌入式应用和就业方向 5、学习路线 1、嵌入式系统是什么? 嵌入式系统(百度):嵌入式系统是以应用为中心,以计算机技术为基础&#…

mysql给用户授予某数据库权限_mysql 数据库授权(给某个用户授权某个数据库)

mysql 数据库授权(给某个用户授权某个数据库) 2016-10-10 带你飞 1.新建用户。 //登录MYSQL >mysql -u root -p >密码 //创建用户 mysql> insert into mysql.user(Host,User,Password) values("localhost","phplamp",password("1234"))…

MySQL数据库用户管理以及数据库用户授权

目录 一、数据库用户管理 1、新建用户 2、查看用户信息 3、重命名用户 4、删除用户 5、修改当前登录用户密码 6、修改其他用户密码 7、忘记 root 密码的解决办法 7.1 修改 /etc/my.cnf 配置文件,不使用密码直接登录到 mysql 7.2 使用 update 修改 root 密…