Проблема с подключением к pcap.h

Я пытаюсь скомпилировать этпинг
Вот команда, которая выдается через make:

gcc -Wall -Werror -ggdb -g -O2 -lpcap  -o ethping ethping.o ieee8021ag.o dot1ag_eth.o

Теперь я получаю это сообщение об ошибке:

/dot1ag-utils-master/src/ethping.c:65: undefined reference to `pcap_breakloop'

Указывая, что он не может найти pcap.h,

Итак, я набираю:

root:src# whereis pcap.h
pcap: /usr/include/pcap.h /usr/include/pcap /usr/share/man/man3/pcap.3pcap.gz
root:src# 



root:src# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/usr/include

И /usr/include определенно на моем пути.

Единственное, что может быть проблемой, это то, что /usr/include/pcap.h это файл-заглушка, который включает и включает pcap/pcap.h,

/*
 * For backwards compatibility.
 *
 * Note to OS vendors: do NOT get rid of this file!  Many applications
 * expect to be able to include <pcap.h>, and at least some of them
 * go through contortions in their configure scripts to try to detect
 * OSes that have "helpfully" moved pcap.h to <pcap/pcap.h> without
 * leaving behind a <pcap.h> file.
 */
#include <pcap/pcap.h>

Так в /usr/include/pcap/pcap.h фактическое содержимое файла с этими определениями.

1 ответ

Вы должны установить не только заголовочные файлы, но и библиотеки. Это пакеты, оканчивающиеся на -devтак что в этом случае:

sudo apt-get install libpcap-dev

Кстати, это метапакет, который установит libpcap0.8-dev пакет.

Другие вопросы по тегам