Wireshark编译手册(Windows)
以下是对 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 来启动应用程序。
相关文章:
Wireshark编译手册(Windows)
以下是对 Wireshark 官方文档中“Windows 平台的设置和构建说明”部分的翻译和总结: 2.2. Windows 平台 本节提供了在 Windows 上进行 Wireshark 开发的快速设置指南,包含推荐的配置。 2.2.1. 使用 Microsoft Visual Studio 注意:除非您非…...
在高德地图上加载3DTilesLayer图层模型/天地瓦片
1. 引入必要的库 Three.js:一个用于创建和显示3D图形的JavaScript库。vuemap/three-layer:一个Vue插件,它允许你在高德地图中添加Three.js图层。vuemap/layer-3dtiles:一个用于处理3D Tiles格式数据的Vue插件,可以用来…...
深入浅出负载均衡:理解其原理并选择最适合你的实现方式
负载均衡是一种在多个计算资源(如服务器、CPU核心、网络链接等)之间分配工作负载的技术,旨在优化资源利用率、提高系统吞吐量和降低响应时间。负载均衡的实现方式多种多样,以下是几种常见的实现方式: 1. 硬件负载均衡&…...
STM32的存储结构
STM32F103 芯片是基于 ARM Cortex-M3 内核的微控制器,它集成了多种类型的存储器,每种存储器都有其特定的作用和存储对象。以下是关于 STM32F103 中 Flash、ROM 和 SRAM 的详细介绍: 1. Flash Memory (闪存) 作用:Flash 是非易失性…...
@SneakyThrows 注解详解
SneakyThrows 注解详解 1. 基本介绍 SneakyThrows 是 Lombok 提供的注解,用于简化异常处理,自动生成 try-catch 代码块,将检查型异常转换为非检查型异常。 2. 使用对比 2.1 传统写法 public String readFile(String path) {try {return …...
js监测页面可见性
监测切换页面 检测页面的可见性状态document.visibilityState:document.hiddenvisibilitychange 事件 js 检测页面切换至别的应用 检测页面的可见性状态 在JavaScript中,你可以使用Page Visibility API来检测页面的可见性状态。这个API提供了一组接口,允…...
Android wifi常见问题及分析
参考 Android Network/WiFi 那些事儿 前言 本文将讨论几个有意思的网络问题,同时介绍 Android 上常见WiFi 问题的分析思路。 网络基础Q & A 一. 网络分层缘由 分层想必大家很熟悉,是否想过为何需要这样分层? 网上大多都是介绍每一层…...
EFCore HasDefaultValueSql
今天小伙伴在代码中遇到了有关 HasDefaultValue 的疑问,这里整理澄清下... 在使用 Entity Framework Core (EFCore) 配置实体时,HasDefaultValue 方法会为数据库列设置一个默认值。该默认值的行为取决于以下条件: 1. 配置 HasDefaultValue 的…...
Win10微调大语言模型ChatGLM2-6B
在《Win10本地部署大语言模型ChatGLM2-6B-CSDN博客》基础上进行,官方文档在这里,参考了这篇文章 首先确保ChatGLM2-6B下的有ptuning AdvertiseGen下载地址1,地址2,文件中数据留几行 模型文件下载地址 (注意࿱…...
什么叫区块链?怎么保证区块链的安全性?
区块链(Blockchain)是一种分布式数据库或账本技术,它通过去中心化的方式记录交易或其他数据,并确保这些记录是安全、透明和不可篡改的。区块链最初是作为比特币(Bitcoin)加密货币的基础技术而被公众所知&am…...
一、智能体强化学习——强化学习基础
1.1 强化学习与深度学习的基本概念 1.1.1 强化学习的核心思想 什么是强化学习? 强化学习(Reinforcement Learning, RL):指在与环境(Environment)的反复交互中,智能体(Agent&#x…...
【DES加密】
什么是DES DES(Data Encryption Standard) 是一种对称加密算法。它的设计目标是提供高度的数据安全性和性能。 DES的概念 DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位,因此,如果需要加密的明文长度不足64位,需要进…...
.NET中的框架和运行环境
在.NET生态系统中,框架和运行环境是两个不同的概念,它们各自扮演着重要的角色。 下面我将分别介绍.NET中的框架和运行环境,并解释它们之间的区别。 .NET 框架(Frameworks) 框架提供了一套预定义的类库、工具和服务&…...
探索微软 M365 安全:全方位守护数字世界
在当今这个科技呈井喷式飞速发展,数字化浪潮以汹涌澎湃、锐不可当之势席卷全球的时代,企业与个人仿若置身于一片浩瀚无垠、信息奔涌的海洋之中,尽情畅享着技术革新所带来的无穷无尽便利。然而,恰如平静海面下潜藏着暗礁与汹涌暗流,网络安全问题恰似隐匿在暗处、随时可能给…...
深入探索AI核心模型:CNN、RNN、GAN与Transformer
在人工智能的飞速发展中,众多深度学习模型和算法不断涌现,推动了许多领域的进步。特别是在图像识别、自然语言处理、生成建模等方向,AI模型的应用越来越广泛。本文将介绍几种最常用的AI模型,包括卷积神经网络(CNN&…...
Java - Http 通讯
Java - Http 通讯 PS: 1. Http 协议 POST | GET 请求; 2. 支持 报头、报文、参数 自定义配置; 3. GET 返回支持 String | Stream; 4. 相关依赖: <dependency><groupId>org.apache.httpcomponents</groupId><…...
C++ Qt练习项目 QChar功能测试
个人学习笔记 代码仓库 GitCode - 全球开发者的开源社区,开源代码托管平台 新建项目 设计UI 1、拖入group box去掉名字 2、拖入2个LineEdit 3、拖入两个Label 4、拖入两个PushButton 5、点栅格布局 1、拖入GroupBox 2、拖入4个PushButton 3、点栅格布局 1、拖入GroupBo…...
android 官网刷机和线刷
nexus、pixel可使用google官网线上刷机的方法。网址:https://flash.android.com/ 本文使用google线上刷机,将Android14 刷为Android12 以下是失败的线刷经历。 准备工作 下载升级包。https://developers.google.com/android/images?hlzh-cn 注意&…...
二叉树层序遍历 Leetcode102.二叉树的层序遍历
二叉树的层序遍历相当于图论的广度优先搜索,用队列来实现 (二叉树的递归遍历相当于图论的深度优先搜索) 102.二叉树的层序遍历 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右…...
DELTA并联机械手视觉方案荣获2024年度机器人应用典型案例奖
直击现场 2025年1月9日晚,2024深圳市机器人年度评选颁奖典礼在深圳市南山区圣淘沙酒店正式拉开帷幕。本次颁奖活动由中国科学院深圳先进技术研究院指导,深圳市机器人协会与《机器人与智能系统》杂志组织承办。 正运动公司受邀参与此次典礼,…...
My SQL 数据库基础实例教程(第二单元学习笔记)
2.1关系数据库设计2.1.1 数据的加工1.现实世界现实世界是指客观存在的事物及他们相互之间的联系。2.信息世界信息世界是人们把现实世界的信息和联系通过“符号”记录下来,然后用规范化的数据库定义语言来描述而构成的一个抽象世界。3.计算机世界计算机世界将信息世界…...
2026 codex 大模型 api 配置指南:auth.json、config.toml 与 401/超时排查
当 codex --version 已经能正常输出,很多人会以为接下来只剩下提问和改代码。但真正决定 Codex 能不能顺利进入项目的,往往是 codex 大模型 api 有没有按要求接好:只要 auth.json、config.toml 或网关地址有一点偏差,就可能马上碰…...
Ubuntu20.04部署RTKLIB-QT:从源码编译到GUI应用实战
1. 为什么要在Ubuntu上部署RTKLIB-QT? 如果你正在处理GNSS(全球导航卫星系统)数据,比如GPS、GLONASS或北斗的观测数据,RTKLIB绝对是你工具箱里不可或缺的利器。这个开源软件包在Windows下有成熟的GUI版本,但…...
插件冲突频发?三招让你的WPS回归清爽
插件冲突频发?三招让你的WPS回归清爽 【免费下载链接】WPS-Zotero An add-on for WPS Writer to integrate with Zotero. 项目地址: https://gitcode.com/gh_mirrors/wp/WPS-Zotero 当你在WPS中处理学术文档时,突然发现工具栏上出现了两个Zotero插…...
告别命令行恐惧!在Ubuntu 20.04上像装App一样轻松安装Typora(附国内源配置)
告别命令行恐惧!在Ubuntu 20.04上像装App一样轻松安装Typora(附国内源配置) 第一次在Linux系统上安装软件时,面对黑底白字的终端窗口,很多人会本能地产生抗拒感。这种感受就像突然被丢进一个全英文的异国机场——你知道…...
3步实现跨系统文件互通:WinBtrfs驱动全解析
3步实现跨系统文件互通:WinBtrfs驱动全解析 【免费下载链接】btrfs WinBtrfs - an open-source btrfs driver for Windows 项目地址: https://gitcode.com/gh_mirrors/bt/btrfs 一、问题场景:双系统用户的文件访问困境 痛点直击:当Wi…...
Python异步爬虫实战:如何避免aiohttp的ServerDisconnectedError(附完整代码)
Python异步爬虫实战:深度解决aiohttp的ServerDisconnectedError问题 最近在帮朋友优化一个电商价格监控项目时,遇到了令人头疼的ServerDisconnectedError。每当爬取量超过5000条商品数据时,程序就会随机崩溃,控制台满是红色错误日…...
github上传项目代码手把手运行,包含部分坑
git config --global init.defaultBranch main 自定义默认分支名称,远程分支是main git init(默认是master) git config --global init.defaultBranch main(以后默认使用main) git push -f origin main (强制覆盖…...
攻克模电难点(一):多级放大电路与差动放大电路实战解析
1. 多级放大电路的设计基础 第一次接触多级放大电路时,我被各种耦合方式绕得头晕。直到在实验室烧坏几个三极管后,才真正理解其中的门道。多级放大电路的核心思想很简单:把多个单级放大电路像搭积木一样连接起来,但实际设计时却要…...
脑网络通信指标——扩散策略的流图指标
和平均首达时间一样,这个指标也是脑网络扩散通信方式的一个指标。这个指标的计算公式也是非常云里雾里,不找原文献推公式看不懂的。 首先给公式: 流图矩阵中的一条边:FG(t)ij = (e^(-tL))ijsj 其中sj = ∑jAij,Aij 就是两个节点之间的结构连接强度,sj就是j节点的强度;…...
