Проблема с функциями libpcap?

#libpcap

#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: %sn",errbuf);
        return 0;   
    }
    printf("Device: %sn",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 библиотеки. Не могли бы вы, пожалуйста, объяснить мне проблему и способ ее исправления? Заранее спасибо…

Ответ №1:

Поскольку вы не связываете библиотеку pcap при компиляции, следовательно, ни одна из функций, которые вы пытаетесь использовать, недоступна.

 cc pcap1.c -lpcap
  

Если вы не установили libpcap где-нибудь в стандартной библиотеке path, вам также нужно будет добавить это

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

Ответ №2:

У меня была эта ошибка, и я только что решил ее.

Я работаю над Debian 7, поэтому вот что я сделал:

1 — после установки 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)

и это прошло в следующий раз

Я надеюсь, что это поможет вам.

удачи