libpcap-dev для Cygwin

При компиляции программ из исходного кода в Cygwin может возникнуть ошибка, содержащая строку «when searching for -lwpcap».

Суть ошибки в том, что ищутся заголовки (хедары) библиотеки pcap.

Данные файлы заголовков присутствуют в пакете libpcap-dev (в Debian и производных). Также этот пакет может называться libpcap (например, в Arch Linux). В репозиториях Cygwin такие пакеты отсутствуют, поскольку их функционирование тесно связано с драйверами операционной системы и libpcap предназначен для Linux, в то время как Cygwin работает на Windows.

При обходе файловой системы в поисках нужных файлов заголовков могут выводиться следующие сообщения:

/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/../lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: skipping incompatible /usr/lib/libwpcap.a when searching for -lwpcap
/usr/lib/gcc/x86_64-pc-cygwin/4.9.3/../../../../x86_64-pc-cygwin/bin/ld: cannot find -lwpcap
collect2: error: ld returned 1 exit status

В качестве альтернативы libpcap для Windows (а, следовательно, и для Cygwin) можно использовать:

  • WinPCAP — популярное ПО, но уже давно не поддерживается
  • Npcap — основывается на WinPCAP и активно развивается в настоящее время

Для компиляции программ требующих библиотеку libpcap, нужны файлы с исходным кодом, заголовки WinPCAP или Npcap.

Файлы заголовков WinPCAP содержатся в Developer's Pack, а файлы заголовков Npcap можно найти в Npcap SDK.

WinPCAP для Cygwin

Для установки заголовков WinPCAP в Cygwin следуйте подсказкам ниже.

Перейдите по ссылке https://www.winpcap.org/devel.htm и скачайте developer pack.

Распакуйте скаченный архив.

Скопируйте библиотеки:

  • WpdPack\Lib\libpacket.a в cygwin\lib\
  • WpdPack\Lib\libwpcap.a в cygwin\lib\

Скопируйте заголовки из WpdPack\Include в cygwin\usr\include\

Убедитесь, что у вас установлены библиотеки Winpcap и что они доступны в PATH, для этого выполните команды:

which Packet.dll
which wpcap.dll

Они должны быть в /cygdrive/c/WINDOWS/system32/.

Npcap для Cygwin

Перейдите на сайт https://nmap.org/npcap/ и скачайте Npcap SDK.

Распакуйте скаченный архив.

Скопируйте заголовки из Include в cygwin\usr\include\.

Убедитесь, что у вас установлены библиотеки Npcap и что они доступны в PATH, для этого выполните команды:

which Packet.dll
which wpcap.dll

Они должны быть в /cygdrive/c/WINDOWS/system32/.


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

wp-puzzle.com logo