Chinaunix首页 | 论坛 | 博客
  • 博客访问: 47428
  • 博文数量: 12
  • 博客积分: 1410
  • 博客等级: 上尉
  • 技术积分: 150
  • 用 户 组: 普通用户
  • 注册时间: 2008-07-24 19:54
文章分类

全部博文(12)

文章存档

2009年(2)

2008年(10)

我的朋友

分类:

2008-07-24 20:58:02

 
 在编译snort并加入另外的预处理器时产生如下的问题:
 1.undefined reference to “DebugMessage”
 2.undefined reference to “pthread_create"
 解决方法:
 对于1中错误:开始认为可能是Debug.h文件没有引用而找不到DebugMessage,后来上网找到要在DebugMessage函数外面加DEBUG_WRAP,如spp_telnet_negotiation.c预处理器中的
   void SetupTelNeg()
{
    /* Telnet negotiation has many names, but we only implement this
     * plugin for Bob Graham's benefit...
     */
    RegisterPreprocessor("telnet_decode", TelNegInit);
    DEBUG_WRAP(DebugMessage(DEBUG_PLUGIN, "Preprocessor: Telnet Decode Decode is setup...\n"););
}
对于错误二:由于此预处理器用到了线程编程要用到linux中没有的函数库pthread,所有在编译时要加-lpthread参数,如gcc -o test test.c -lpthread 但是在snort中编译是用的make所以需要在Makefile中修改LIBS=* * * (后加-lpthread),但是要在src目录下的Makefile中改,一开始我以为在是src/preprocessor预处理器目录中改,这样不行,必须在src中改,具体原因可能得看snort的结构了。

 

至于一开始./configure就可能出错的找不到libpcap错误很怪异,有如下几种情况:

没装libpcap,只有先装好了;locate libpcap找到了但是./configure时不行,这就很怪异了,可能是编译器的原因吧,网上有人甚至说在REHL5中有这个问题而在REHL3,4中可以,具体原因不知。


 
 
 
阅读(1084) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~