0
#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图书馆的其他功能也会发生这种情况。你能向我解释一下这个问题以及纠正它的方法吗?提前致谢...

4

2 回答 2

3

因为您在编译时没有链接 pcap 库,因此您尝试使用的函数都不可用。

cc pcap1.c -lpcap

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

cc pcap1.c -lpcap -L/directory/libpcap/is/in
于 2011-04-18T04:37:05.363 回答
0

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

我正在开发 Debian 7,所以这就是我所做的:

1 - 安装了 libpcap,您可以在此链接中找到如何安装 libpcap

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

安装 libpcap

2 - 返回此错误的 gcc test.c -lpcap “collect2: ld returned 1 exit status”

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

下一次就通过了

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

祝你好运

于 2014-02-13T10:40:12.187 回答