При компиляции программ из исходного кода в 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/.
Связанные статьи:
- Что такое «Лимитное подключение» и для чего оно нужно в Windows 10 (53%)
- Программы для мониторинга сети в Windows (53%)
- Как использовать телефон с Android для Интернет-доступа на компьютере без Wi-Fi (53%)
- Работающий способ сбросить пароль Windows 10 в 2021 (51.9%)
- Как вставить текст без форматирования в любой программе (51.9%)
- Как установить Windows 11 без учётной записи Microsoft (RANDOM - 50%)