我是一名学生,目前正在研究一个项目,以在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?任何提示或解决方案将不胜感激!
答案 0 :(得分:0)
$(pkg-config --cflags --libs libhs)仅在系统上安装了库和相关开发文件时才有效。看起来您具有库的源代码,因此首先需要构建和安装库本身,然后再编译测试程序。 另外,库可能在标准存储库中可用,那么您可能想使用“ sudo apt install libhs-dev”之类的东西来安装它,但是,如果您需要使用特定版本的源代码,或者库已关闭源代码和非公开代码,那么唯一的方法是手动编译并安装它。请参阅库代码可能随附的文档,自述文件,安装文件,并遵循此处描述的构建和安装过程。