将 Pcapplusplus 库添加到 Qt Widget 项目

问题描述 投票:0回答:1

我正在开发 Qt 项目,并将使用 pcapplusplus 库来读取 pcapng 文件。我正在使用 Windows 并使用 MSVC 2019 64 位进行项目。因此,我为我的项目下载了库,即

pcapplusplus-23.09-windows-vs2022-x64-release

我编辑了 .pro 文件以添加 pcapplusplus 库:

INCLUDEPATH += \
    $$PWD\pcapplusplus\include\pcapplusplus

LIBS +=
    $$PWD\pcapplusplus\lib

并包含使用库:

#include "IPv4Layer.h"
#include "Packet.h"
#include "PcapFileDevice.h"

有 pcapng.h 和 pcapng.cpp 文件用于使用库从 pcapng 文件中读取数据字节。当我这样声明对象时

pcpp::PcapFileReaderDevice reader(R"(C:\Users\abc.xyz\Desktop\1_packet.pcap)");
没有任何错误。但是当我构建项目时,我遇到了很多错误:

C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:240: error: C2011: 'sockaddr': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared\ws2def.h(240): error C2011: 'sockaddr': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um\winsock.h(482): note: see declaration of 'sockaddr'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:442: error: C2143: syntax error: missing '}' before 'constant'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:442: error: C2059: syntax error: 'constant'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:496: error: C2143: syntax error: missing ';' before '}'
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:496: error: C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:496: error: C4430: missing type specifier - int assumed. Note: C++ does not support default-int
C:\Program Files (x86)\Windows Kits\10\include\10.0.22000.0\shared\ws2def.h:638: error: C2011: 'sockaddr_in': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\shared\ws2def.h(638): error C2011: 'sockaddr_in': 'struct' type redefinition
C:\Program Files (x86)\Windows Kits\10\\include\10.0.22000.0\\um\winsock.h(309): note: see declaration of 'sockaddr_in'
...

我下载了预编译库。我的意思是,我可以直接使用它,不是吗?

请帮助我将 pcapplusplus 库包含到我的项目中。

qt include lib pcapplusplus
1个回答
0
投票

LIBS 应该是

LIBS += -L$$PWD\pcapplusplus\lib -lpcapplusplus

或者类似的东西。也就是说,添加带有

-L
的库搜索路径,带有
-l
的库(库“基本名称”,没有前缀或后缀)。

© www.soinside.com 2019 - 2024. All rights reserved.