为什么我的代码不能用libpcap编译?

时间:2014-03-19 22:15:55

标签: c ubuntu pcap libpcap

我正在尝试编译以下代码:

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

#define listen_device "eth0"

int main(int argc, char *argv[])
{
    char *dev, errbuf[PCAP_ERRBUF_SIZE];

    dev = pcap_lookupdev(errbuf); // err 'pcap_lookupdev undefined'
    if (dev == NULL) {
        fprintf(stderr, "Couldn't find default device: %s\n", errbuf);
        return(2);
    }
    printf("Device: %s\n", dev);
    return(0);
}

甚至知道我的pcap标题定义了pcap_lookupdev

...
char    *pcap_lookupdev(char *);
...

我通过以下方式安装了libpcap:

sudo apt-get install libpcap0.8-dev  

每当我尝试使用pcap头中声明的函数时,gcc都会给出错误function is undefined。有谁知道我做错了什么?

1 个答案:

答案 0 :(得分:2)

如何在Ubuntu下编译libpcap应用程序:

  1. 安装libpcap:sudo apt-get install libpcap0.8-dev
  2. 设置eclipse链接器来处理libpcap:

    Project -> properties -> build settings -> linker -> libraries -> add library

  3. 您只需输入pcap。

    要从命令行编译,您所要做的就是:

    gcc -o {output} file.c -lpcap