2010-03-07 166 views
3

我试图在Windows 7下的cygwin下安装libpcap,但是我有这个错误: $ ./configure 。 。 。 。 。 配置:错误:请参阅INSTALL获取更多信息帮助在cygwin上安装libpcap

我该如何解决这个问题? 我使用的是最新版本的libpcap-1.0.0。

回答

8

http://mathieu.carbou.free.fr/wiki/index.php?title=How_to_install_Winpcap_/_Libpcap_under_Cygwin

libpcap的开发包可以从详细 http://www.winpcap.org/devel.htm

步骤来发现如下:

Setup Winpcap

  1. Download and unzip the pack. We will use for this example WpdPack_4_0_1.zip.

  2. Copy libraries like this:

    • WpdPack\Lib\libpacket.a to cygwin\lib\
    • WpdPack\Lib\libwpcap.a to cygwin\lib\
  3. Create a folder cygwin\usr\include\pcap\

  4. Copy all headers from WpdPack\Include to cygwin\usr\include\winpcap\

  5. Be sure you have installed Winpcap libraries and that they are in your path by typing:

    which packet.dll 
    which wpcap.dll 
    

For me they are in /cygdrive/c/WINDOWS/system32/

Building example using Cygwin

Open a cygwin prompt to WpdPack\Examples-pcap\basic_dump\ and execute:

basic_dump:

CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" 
LIBS="-lwpcap" 
PROG="basic_dump" 
gcc $CFLAGS -c $PROG.c 
gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS 
./$PROG.exe 

basic_dump_ex:

CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" 
LIBS="-lwpcap" 
PROG="basic_dump_ex" 
gcc $CFLAGS -c $PROG.c 
gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS 
./$PROG.exe 

iflist:

CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" 
LIBS="-lwpcap" 
PROG="iflist" 
gcc $CFLAGS -c $PROG.c 
gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS 
./$PROG.exe 

pcap_filter (and others):

I think you can catch the pattern ;) Only replace PROG=... by the program name and it should compile. 

UDPdump:

CFLAGS="-g -Wall -mno-cygwin -I /usr/include/pcap" 
LIBS="-lwpcap -lwsock32" 
PROG="UDPdump" 
gcc $CFLAGS -c $PROG.c 
gcc $CFLAGS -o $PROG.exe $PROG.o $LIBS 
./$PROG.exe 

You can test by doing a Time Synchronization with pool.ntp.org for example.

4

libpcap源码包括部分,但是不是所有的Windows支持。用于捕获网络流量的机制非常依赖操作系统(这是libpcap存在的原因 - 为了隐藏应用程序的细节)。

在UN * Xes上,该机制是操作系统的一部分,因此libpcap不必提供该机制。

在Windows上,操作系统中没有这样的机制,所以WinPcap结合了内核模式驱动程序,与驱动程序通信的低级库和使用低级库的libpcap模块。

libpcap源不包含驱动程序或低级库,因此仅为Windows构建libpcap版本是不够的。

正如其他答案所示,您需要WinPcap。