Wireshark编译手册(Windows)

devtools/2025/1/11 13:35:15/

以下是对 Wireshark 官方文档中“Windows 平台的设置和构建说明”部分的翻译和总结:

2.2. Windows 平台

本节提供了在 Windows 上进行 Wireshark 开发的快速设置指南,包含推荐的配置。

2.2.1. 使用 Microsoft Visual Studio

注意:除非您非常了解自己在做什么,否则应严格遵循以下建议。这些配置已被验证可行。如果构建过程中出现问题,请仔细重新阅读本指南。

常见问题包括:

  • 未使用正确版本的 Visual Studio 命令提示符(x64 或 arm64)。
  • 使用了不受支持的 Windows 版本。请在 Microsoft 官方支持页面 确认您的 Windows 版本受支持并已更新。
2.2.1.1. 推荐:安装 Chocolatey

Chocolatey 是 Windows 的本地包管理器。以下大部分软件都可以通过它安装。您可以使用 choco install 命令安装所需软件,例如:

# 安装 Flex
choco install -y winflexbison3# 安装 Git、CMake、Python 等
choco install -y git cmake python3
 2.2.1.2. 安装 Microsoft Visual Studio

下载并安装 Microsoft Visual Studio 2022 Community Edition。如果您愿意,也可以选择 Microsoft Visual Studio 2019 Community Edition。以下示例基于 Visual Studio 2022,但也可适用于 Visual Studio 2019。

在安装过程中,选择“使用 C++ 的桌面开发”工作负载,并确保以下组件被选中:

  • MSVC 最新版本的构建工具
  • Windows 11 SDK
  • 适用于 Windows 的 C++ CMake 工具
  • MSVC 的 Spectre 缓解库(可选)

您也可以使用 Chocolatey 安装 Visual Studio 及其工作负载:

choco install -y visualstudio2022community visualstudio2022-workload-nativedesktop

虽然可以使用其他版本的 Microsoft C 编译器,但官方的 Wireshark Windows 开发版本是使用 Visual Studio 2022 构建的,因此推荐使用该版本。

注意:您可能需要以管理员身份执行上述操作。

虽然可能使用 clang-cl 构建 Wireshark,但尚未经过测试。使用纯粹的 gcc 或 Clang 编译器在 Windows 上构建 Wireshark 并不推荐,且可能无法成功(除非进行大量高级调整)。

推荐理由:虽然下载量较大,但 Visual Studio Community Edition 是免费的,并包含集成调试器。此外,官方的 Wireshark Windows 版本也是使用 Visual Studio 2022 构建的,因此在开发过程中可能遇到的问题会更少。

2.2.1.3. 安装 Qt

Wireshark 主应用程序使用 Qt 窗口工具包。要安装 Qt,请访问 Qt 官方下载页面,选择“Download open source”,然后下载适用于 Windows 的在线安装程序。运行安装程序,注册或登录后,选择“自定义安装”。

在“选择组件”页面,选择您需要的 Qt 版本。我们推荐最新的 LTS 版本,当前稳定的 Windows 安装程序包含 Qt 6.5.3。请确保选中以下组件:

  • MSVC 2019 64-bit
  • Qt 5 兼容模块
  • Qt 调试信息文件(包含可用于调试的 PDB 文件)
  • 在“附加库”下,选择“Qt Multimedia”以支持在 RTP 播放器对话框中播放流的高级控制

其他组件(如“Qt Charts”或“Android xxxx”)可取消选择,因为它们不是必需的。

CMake 变量 CMAKE_PREFIX_PATH 应设置为您的 Qt 安装目录,例如 C:\Qt\6.5.3\msvc2019_64。或者,您也可以使用环境变量 WIRESHARK_QT6_PREFIX_PATH

Qt 6 是构建 Wireshark 的默认选项,但 Wireshark 也支持 Qt 5.12 及更高版本。若需使用 Qt 5 构建 Wireshark,请在运行 cmake 时添加参数 -DUSE_qt6=OFF

2.2.1.4. 安装 Win64 开发工具包

Wireshark 的构建需要 64 位版本的开发工具包。

确保在 Visual Studio 安装过程中选择了适用于 64 位的工具集。

如果未选择,可能需要重新运行安装程序进行修改。

2.2.1.5. 安装 Python

Wireshark 的构建过程需要 Python。

建议安装最新的 Python 3 版本。

可以从 Python 官方网站 下载适用于 Windows 的安装程序。

安装时,确保选中“Add Python to PATH”选项,以便在命令行中直接使用 python 命令。

2.2.1.6. 安装 CMake

CMake 是一个跨平台的构建系统,Wireshark 使用它来管理构建过程。

可以从 CMake 官方网站 下载适用于 Windows 的安装程序。

安装完成后,确保在命令行中可以访问 cmake 命令。

2.2.1.7. 安装 Git

Wireshark 的源代码通过 Git 进行版本控制。

可以从 Git 官方网站 下载适用于 Windows 的安装程序。

安装完成后,确保在命令行中可以使用 git 命令。

2.2.1.8. 获取 Wireshark 源代码

打开命令提示符,使用以下命令克隆 Wireshark 的源代码仓库:

git clone https://gitlab.com/wireshark/wireshark.git

这将创建一个名为 wireshark 的目录,包含所有源代码。

2.2.1.9. 配置构建环境

在命令提示符中,导航到 Wireshark 源代码目录,然后创建一个构建目录并进入该目录:

cd wireshark
mkdir build
cd build

使用 CMake 配置构建环境:

cmake -G "Visual Studio 17 2022" -A x64 ..

这将生成适用于 Visual Studio 2022 的 64 位构建文件。

2.2.1.10. 构建 Wireshark

在命令提示符中,运行以下命令开始构建:

msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln

这将以包含调试信息的发布模式构建 Wireshark。

2.2.1.11. 运行 Wireshark

构建完成后,生成的可执行文件位于 run\RelWithDebInfo 目录中。

您可以直接运行 wireshark.exe 来启动应用程序。


http://www.ppmy.cn/devtools/149621.html

相关文章

Jenkins内修改allure报告名称

背景: 最近使用Jenkins搭建自动化测试环境时,使用Jenkins的allure插件生成的报告,一直显示默认ALLURE REPORT,想自定义成与项目关联的名称,如图所示,很明显自定义名称显得高大上些,之前…

Python 模块 Uvicorn 实战指南

文章目录 1. 介绍和安装1.1 介绍1.2 安装 2. 创建基础应用2.1 简单的 HTTP 应用2.2 添加日志 3. 实现高级功能3.1 支持 WebSocket3.2 优化运行性能 4. Nginx 配置反向代理4.1 安装与配置 Nginx4.2 启用 SSL 支持4.3 性能优化建议 5. 常见问题与解决方案5.1 高并发问题5.2 WebSo…

ETL的工作原理

ETL的工作原理 什么是ETL_云计算主题库-阿里云 ETL的工作原理可以分为三个主要的步骤:Extract(提取)、Transform(转换)、Load(加载)。 工作步骤 描述 Extract (提取)…

Kotlin | Android Provider 的实现案例

目标 使用 Android Room 实现持久化库。 代码 Kotlin 代码编写 DemoDatabase,在build生成 DemoDatabase_Impl 疑问 Provider的数据会存在设备吗? 内部存储: 当使用 Room 创建数据库(如 DemoDatabase),数据库文件通常…

nginx运行之后显示的是上一个项目,如何解决

重启 Nginx 使配置生效 修改 Nginx 配置后,你需要重新加载或重启 Nginx,以使配置生效。执行以下命令: sudo nginx -t # 测试配置是否正确 sudo systemctl restart nginx # 重启 Nginxbash 复制代码 检查浏览器缓存 浏览器可能缓存了旧…

代码随想录算法训练营第六十天|KM94.城市间货物运输Ⅰ|KM95.城市间货物运输Ⅱ|KM96.城市间货物运输Ⅲ

94. 城市间货物运输 I 2、Bellman_ford队列优化算法(又名SPFA) SPFA是对Bellman_ford算法的优化,由于Bellman_ford 算法 每次都是对所有边进行松弛,其实是多做了一些无用功。其实只需要对 上一次松弛的时候更新过的节点作为出发节…

网络安全 | DevSecOps:将安全融入DevOps开发生命周期

网络安全 | DevSecOps:将安全融入DevOps开发生命周期 一、前言二、DevSecOps 的概念与原则2.1 DevSecOps 的概念2.2 DevSecOps 的原则 三、DevSecOps 的关键实践3.1 安全需求分析与管理3.2 安全设计与架构3.3 安全编码实践3.4 安全测试策略3.5 安全部署与运维 四、D…

sklearn-逻辑回归-制作评分卡

目录 数据集处理 分箱 分多少个箱子合适 分箱要达成什么样的效果 对一个特征进行分箱的步骤 分箱的实现 封装计算 WOE 值和 IV值函数 画IV曲线,判断最佳分箱数量 结论 pd.qcut 执行报错 功能函数封装 判断分箱个数 在银行借贷场景中,评分卡是…