QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1683|回复: 9

求助:libpcap编程遇到的问题

[复制链接]
发表于 2006-5-8 16:29:25 | 显示全部楼层 |阅读模式
在程序中调用
    device = pcap_lookupdev(errbuf);  //find the device
   和
    p=pcap_open_live(device,SNAPLEN,PROMISC,READ_TIME_OUT,errbuf);
编译时报错:
.obj/main.o(.text+0xf): In function `Init_pcap()':
/tmp/lgf/sniffer/cap_pkt.h:29: undefined reference to `pcap_lookupdev'
.obj/main.o(.text+0x3e):/tmp/lgf/sniffer/cap_pkt.h:31: undefined reference to `pcap_open_live'
collect2: ld returned 1 exit status
make: *** [sniffer] Error 1
我在头文件中写了
#include "/usr/include/pcap.h"
  
发表于 2006-5-9 12:43:17 | 显示全部楼层
-lpcap没有?
回复

使用道具 举报

 楼主| 发表于 2006-5-9 15:47:48 | 显示全部楼层
/usr/include/pcap.h
这个路径应该没问题的
回复

使用道具 举报

 楼主| 发表于 2006-5-10 21:41:22 | 显示全部楼层
[quote:1741a9e4bc="mozilla"]-lpcap没有?[/quote]
qmake -o makefile **.pro

这样不对吗
回复

使用道具 举报

发表于 2006-5-14 17:49:55 | 显示全部楼层
有了头文件,还要有实现函数的库啊。你只是有了头文件而已。
回复

使用道具 举报

 楼主| 发表于 2006-5-14 21:20:27 | 显示全部楼层
这些函数不是都可以直接调用的吗?
回复

使用道具 举报

发表于 2006-5-14 21:27:35 | 显示全部楼层
链接错误,不是编译错误,所以不用考虑头文件问题。
除了libc里面的函数可以直接使用(链接器会自动链接),其他库都要手动指定。
回复

使用道具 举报

 楼主| 发表于 2006-5-14 23:48:10 | 显示全部楼层
修改makefile吗??
请楼上的说的具体一点吧
感激涕零啊!!
回复

使用道具 举报

发表于 2006-5-15 10:39:55 | 显示全部楼层
改makefile,在适当地方加上-lpcap
大概是LIBS=那个地方吧
回复

使用道具 举报

 楼主| 发表于 2006-5-15 15:06:25 | 显示全部楼层
解决了
在makefile里的
LIBS     = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm 后面加上-lpcap就可以了
LIBS     = $(SUBLIBS) -L$(QTDIR)/lib -L/usr/X11R6/lib -lqt-mt -lXext -lX11 -lm -lpcap(这样就行了)
谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-11-2 16:26 , Processed in 0.038630 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表