帮助在cygwin上安装libpcap

帮助在cygwin上安装libpcap,cygwin,libpcap,Cygwin,Libpcap,我试图在windows 7上的cygwin下安装libpcap,但出现以下错误: 美元/配置 . . . . . 配置:错误:有关详细信息,请参阅安装 我怎样才能解决这个问题? 我正在使用最新版本的libpcap-1.0.0。我知道这是一个迟到的回复,但我刚刚在Windows 7上遇到了相同的安装问题 在Windows上,您应该使用Winpcap: libpcap开发包可从以下位置找到: 具体步骤如下: 设置Winpcap 下载并解压缩包。我们将在这个示例中使用WpdPack_4_0_1.zi

我试图在windows 7上的cygwin下安装libpcap,但出现以下错误: 美元/配置 . . . . . 配置:错误:有关详细信息,请参阅安装

我怎样才能解决这个问题?
我正在使用最新版本的libpcap-1.0.0。

我知道这是一个迟到的回复,但我刚刚在Windows 7上遇到了相同的安装问题

在Windows上,您应该使用Winpcap:

libpcap开发包可从以下位置找到:

具体步骤如下:

设置Winpcap

  • 下载并解压缩包。我们将在这个示例中使用WpdPack_4_0_1.zip

  • 复制库,如下所示:

    • WpdPack\Lib\libpacket.a到cygwin\Lib\
    • WpdPack\Lib\libwpcap.a到cygwin\Lib\
  • 创建文件夹cygwin\usr\include\pcap\

  • 将所有标题从WpdPack\Include复制到cygwin\usr\Include\winpcap\

  • 通过键入以下内容,确保已安装Winpcap库,并且它们位于您的路径中:

    which packet.dll
    which wpcap.dll
    
  • 对我来说,它们位于/cygdrive/c/WINDOWS/system32中/

    使用Cygwin构建示例

    打开一个cygwin提示符,指向WpdPack\Examples pcap\basic\u dump\并执行:

    基本转储:

    基本转储实例:

    iflist:

    pcap_过滤器(和其他):

    UDPdump:

    您可以通过对pool.ntp.org进行时间同步来进行测试 例如


    libpcap源包括部分(但不是全部)Windows支持。用于捕获网络流量的机制非常依赖于操作系统(这就是为什么libpcap存在的原因——对应用程序隐藏该细节)

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

    在Windows上,操作系统中没有这样的机制,因此WinPcap结合了内核模式驱动程序、与驱动程序对话的低级库以及使用低级库的libpcap模块

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


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

    FYI-WinPcap开发者包在使用64位cygwin时似乎无法工作。因此,如果在将开发包放到正确位置后仍然看到pcap库丢失错误,请尝试32位Cygwint谢谢,但我得到了一个
    未知命令行选项'-mno cygwin'
    。按照所有步骤,有什么建议吗?@gies0r-mno cygwin已经过时了。您可以删除此选项,然后重试。仅供参考,谢谢@camino。我认为这里还有一个复制/粘贴问题:
    CFLAGS=“-g-Wall-I/usr/include/winpcap/”
    是必需的,因为
    CFLAGS=“-g-Wall-I/usr/include/pcap/”
    不存在,因为在步骤4中提取到
    \usr\include\winpcap`。您也可以简单地将步骤4更改为提取到
    /usr/include/pcap/`@gies0r,谢谢!
    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
    
    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
    
    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
    
    I think you can catch the pattern ;) Only replace PROG=... by the program name and it should compile.
    
    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