编译要在Intel Hyperscan中使用的.cc文件时遇到问题

时间:2018-10-30 10:36:03

标签: c++ g++ ubuntu-16.04

我是一名学生,目前正在研究一个项目,以在Ubuntu 16.04上实现针对病毒签名扫描的Intel Hyperscan。

在系统上,我有gcc 5.4.0和g ++ 5.4.0。 Hyperscan使用CMake来“构建”自己。

成功构建了Hyperscan,我似乎无法找到一种方法来为其编译自己的代码。我也找不到在线用于Hyperscan的任何“适当”编译代码的方式,因此我认为g ++是正确的。我已经尝试过,

  

g ++ -o -std = c ++ 11测试test.cc $(pkg-config --cflags --libs libhs)

     

仅允许它给出错误: hs.h:无此类文件或目录   因此我用了

     

g ++ -o -std = c ++ 11测试test.cc -I ../ hyperscan / src $(pkg-config --cflags --libs   libhs)

     

出现另一个错误:    / usr / bin / ld:找不到-lhs collect2:错误:ld返回1个退出状态

在这一点上,我有点迷茫,无法真正完成我的项目。我使用g ++错误吗?我是否正确构建了Hyperscan?任何提示或解决方案将不胜感激!

1 个答案:

答案 0 :(得分:0)

$(pkg-config --cflags --libs libhs)仅在系统上安装了库和相关开发文件时才有效。看起来您具有库的源代码,因此首先需要构建和安装库本身,然后再编译测试程序。 另外,库可能在标准存储库中可用,那么您可能想使用“ sudo apt install libhs-dev”之类的东西来安装它,但是,如果您需要使用特定版本的源代码,或者库已关闭源代码和非公开代码,那么唯一的方法是手动编译并安装它。请参阅库代码可能随附的文档,自述文件,安装文件,并遵循此处描述的构建和安装过程。