Qt 5 配置 WinPcap 开发环境

Posted iamhesir

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Qt 5 配置 WinPcap 开发环境相关的知识,希望对你有一定的参考价值。

第一步:下载必要的工具。

  • 下载 WinPcap 程序,解压后安装。

  • 下载 WpdPack 工具包,解压后文件夹下包含有 IncludeLib 两个子文件夹。

第二步:配置开发环境,有两种方式。

  • 第一种:
    在 C 盘下新建一个 WpdPack 文件夹,然后将 IncludeLib 两个文件夹拷贝到该文件夹中。
    在项目文件 .pro 添加以下内容

    INCLUDEPATH += C:\\WpdPack\\Include
    LIBS += C:/WpdPack/Lib/wpcap.lib

    说明:这里文件夹的位置可自由选定,只要项目文件中的文件路径保持一致即可。

  • 第二种:
    Include 文件夹下的全部内容拷贝到 C:\\Qt\\Qt5.6.1\\5.6\\mingw49_32\\include 目录下
    Lib 文件夹下的全部内容拷贝到 C:\\Qt\\Qt5.6.1\\5.6\\mingw49_32\\lib 目录下
    这时只需在项目文件 .pro 添加 LIBS += wpcap.lib 即可

第三步:编写程序并运行,在头文件中添加以下内容:

#define HAVE_REMOTE
#include <pcap.h>
#include <remote-ext.h>

这里提供一份测试代码。

#include <QCoreApplication>
#include <QDebug>
#define HAVE_REMOTE
#include <pcap.h>
#include <remote-ext.h>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    pcap_if_t *alldevs;
    char errbuf[PCAP_ERRBUF_SIZE];

    /* Retrieve the device list from the local machine */
    if (pcap_findalldevs_ex(PCAP_SRC_IF_STRING, NULL /* auth is not needed */,
                            &alldevs, errbuf) == -1) {
        fprintf(stderr,"Error in pcap_findalldevs_ex: %s\\n", errbuf);
        exit(1);
    }

    /* Print the list */
    pcap_if_t *d;
    int i=0;
    for(d= alldevs; d != NULL; d= d->next) {
        printf("%d. %s", ++i, d->name);
        if (d->description) {
            printf(" (%s)\\n", d->description);
        } else {
            printf(" (No description available)\\n");
        }
    }

    if (i == 0) {
        printf("\\nNo interfaces found! Make sure WinPcap is installed.\\n");
    } else {
        /* We don‘t need any more the device list. Free it */
        pcap_freealldevs(alldevs);
    }

    return a.exec();
}

运行结果如下图:
技术分享图片







以上是关于Qt 5 配置 WinPcap 开发环境的主要内容,如果未能解决你的问题,请参考以下文章

VS2010配置QT5.5.0开发环境

Windows下配置Qt 5.8+opencv 3.1.0开发环境

OpenCV和Qt的开发环境配置

Qt For Android 开发环境配置

QT 实用代码片段

怎样配置VS2013+Qt5开发环境