编译hyperscan

1. 需要的环境

hyperscan官方开发文档

1.1 硬件环境

Intel X86平台32位或者64位都可以运行。另外hyperscan在编译时可以添加一些新的特性,如果系统支持:

  • Intel Streaming SIMD Extensions 4.2 (SSE4.2)
  • POPCNT指令
  • BMI, BMI2指令
  • Intel AVX2指令

例如:

cmake -DCMAKE_C_FLAGS="-march=corei7" \
  -DCMAKE_CXX_FLAGS="-march=corei7" <hyperscan-source-path>

对于不同的cpu特性,-march表格如下:

Variantcpu支持的特性flagsgcc arch flag
Core 2SSSE3-march=core2
Core i7SSE4_2 and POPCNT-march=corei7
AVX 2AVX2-march=core-avx2
AVX 512AVX512BW (见下面注释1.1)-march=skylake-avx512

注释1.1:AVX 512是至强处理器引入的指令集,并不是所有的cpu都支持,编译时默认是关闭的。如果需要打开,编译时执行如下代码
cmake - DBUILD_AVX512 = on <...>

1.2 软件环境

GCC/C++编译器

  • GCC, v4.8.1或更高版本
  • Clang, v3.4或更高版本(包含libstdc++或libc++)
  • Intel C++ Compiler v15或更高版本

操作系统

  • Linux
    • Ubuntu 14.04 LTS or newer
    • RedHat/CentOS 7 or newer
  • FreeBSD
    • 10.0 or newer
  • Mac OS X
    • 10.8 or newer, using XCode/Clang

其他系统可能也可以运行hyperscan,但性能稳定性无法担保。

其他一些依赖

依赖的软件版本备注
CMake>=2.8.11
Ragel6.9
Python2.7
Boost>=1.57只需要Boost的头文件
Pcap>=0.8可选项:只例子程序需要
Boost头文件

boost不用编译和安装,只需要把头文件链接到hyperscan源码中即可,以Boost-1.59.0正式版为例:

ln -s boost_1_59_0/boost <hyperscan-source-path>/include/boost

1.3 编译和安装

编译

  1. cd <hyperscan-source-path>
  2. mkdir hs_build;cd hs_build
  3. cmake -D<variable name>=<value> <hyperscan-source-path>
  4. cmake --build .

-D参数列表

变量名描述
CMAKE_C_COMPILER使用c编译器,默认是/usr/bin/cc
CMAKE_CXX_COMPILER使用c++编译器,默认是/usr/bin/c++
CMAKE_INSTALL_PREFIX安装目录
CMAKE_BUILD_TYPEDebug,Release,RelWithDebInfo,MinSizeRel,默认是RelWithDebInfo
BUILD_SHARED_LIBS默认是静态库,设置这个参数编译为动态库
BUILD_STATIC_AND_SHARED同时生成静态库和动态库,默认关闭
BOOST_ROOTBoost源代码树的位置
DEBUG_OUTPUT打开啰嗦模式输出,默认关闭
FAT_RUNTIME在linux环境默认打开,其他环境没有

一个例子

源码是hyperscan-4.7.0

cd hyperscan-4.7.0
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=on ../hyperscan-4.7.0
cmake --build .
  • -DCMAKE_BUILD_TYPE=Release:编译为release版本,默认是RelWithDebInfo
  • -DBUILD_SHARED_LIBS=on:生成动态库,默认生成静态库
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值