libpcap函数有问题吗?

时间:2011-04-12 15:08:59

标签: libpcap

#include <stdio.h>
#include <pcap.h>

int main(int argc,char* argv[])
{
    char* dev=argv[1];
    char errbuf[PCAP_ERRBUF_SIZE];
    dev=pcap_lookupdev(errbuf);
    if(dev==NULL) {
        fprintf(stderr,"Couldn't find default device: %s\n",errbuf);
        return 0;   
    }
    printf("Device: %s\n",dev); 

    return 0;
}

编译时:

$ cc pcap1.c 
/tmp/ccZLrRlF.o: In function `main':
pcap1.c:(.text+0x37): undefined reference to `pcap_lookupdev'
collect2: ld returned 1 exit status

这也发生在libpcap库的其他功能上。你可以向我解释一下问题并找出解决方法吗?提前谢谢......

2 个答案:

答案 0 :(得分:3)

因为您在编译时没有链接pcap库,所以您尝试使用的所有功能都不可用。

cc pcap1.c -lpcap

如果您尚未在标准库路径中的某处安装libpcap,则还需要添加

cc pcap1.c -lpcap -L/directory/libpcap/is/in

答案 1 :(得分:0)

我有这个错误,我刚刚解决了它。

我正在使用Debian 7,所以这就是我所做的:

1 - 在这个链接install libpcap

中找到libpcap的内容

!!!!!!安装flex(sudo apt-get install bison)因为我遇到了一些问题

安装libpcap

2 - gcc test.c -lpcap返回此错误“collect2:ld返回1退出状态”

3 - 安装了libpcap-devel(sudo apt-get install libpcap-dev)

并且下次进行了

我希望这会对你有所帮助。

祝你好运