У меня проблемы с получением Eclipse для создания проекта с WinPCap. Я вручную добавил пути wpcap.lib и Packet.lib через браузер файловой системы в диалоге настроек проекта. Когда я собираю, он говорит, что ld не может найти библиотеки. Я использую набор инструментов GNU Cygwin.
Источник:
#include "pcap.h"#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
pcap_if_t *alldevs;
pcap_if_t *d;
int i=0;
char errbuf[PCAP_ERRBUF_SIZE];
/* Retrieve the device list from the local machine */
if (pcap_findalldevs(&alldevs, errbuf) == -1)
{
fprintf(stderr,"Error in pcap_findalldevs_ex: %s\n", errbuf);
exit(1);
}
return 0;
}
Ошибки:
make all
Building file: ../src/main.cpp
Invoking: Cygwin C++ Compiler
g++ -I"C:\Users\parker\WpdPack\Include" -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP - MF"src/main.d" -MT"src/main.d" -o "src/main.o" "../src/main.cpp"cygwin warning:
MS-DOS style path detected: C:\Users\parker\workspace\net\Debug
Preferred POSIX equivalent is: /cygdrive/c/Users/parker/workspace/net/Debug
CYGWIN environment variable option "nodosfilewarning" turns off this warning.
Consult the user's guide for more details about POSIX paths:
http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
../src/main.cpp: In function `int main(int, char**)':
../src/main.cpp:14: warning: unused variable 'd'
../src/main.cpp:15: warning: unused variable 'i'
Finished building: ../src/main.cpp
Building target: net.exe
Invoking: Cygwin C++ Linker
g++ -L"C:\Users\parker\WpdPack\Lib" -o "net.exe" ./src/main.o - lC:/Users/parker/WpdPack/Lib/wpcap.lib -lC:/Users/parker/WpdPack/Lib/Packet.lib
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lC:/Users/parker/WpdPack/Lib/wpcap.lib
/usr/lib/gcc/i686-pc-cygwin/3.4.4/../../../../i686-pc-cygwin/bin/ld: cannot find -lC:/Users/parker/WpdPack/Lib/Packet.lib
collect2: ld returned 1 exit status
make: *** [net.exe] Error 1
makefile:45: recipe for target `net.exe' failed
Файлы библиотеки наверняка находятся по указанному пути. Мне кажется странным, что пути были переписаны с /
вместо обычной винды \
, Я пытался вручную редактировать пути с обоими /
а также \
но это не изменило вывод ошибки вообще.
Задача ещё не решена.
Других решений пока нет …