当前位置:首页 > Windows程序 > 正文

如何在Windows上编译wireshark源码

2021-05-24 Windows程序

     在深受了几天编译wireshark源码的痛苦后,记录下自己编译wireshark的经验,希望能给今后需要编译wireshark的人一些帮助。这个方法是能编译最新的wireshark源码,现在网上找的一些方法都是旧的一些方法,编译最新的wireshark是行不通的。我参考的是一个英文的说明文档,如果阅读此文档的人没有困难的话,可以就此英文文档说明进行编译。附上地址:https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html (如果打不开,可能需要FQ)

现在详细介绍编译wireshark的步骤:

1、安装VS2013

社区版或旗舰版的都行,请一定按默认路径安装,这样可以减少很多麻烦。安装完成后,在cmd命令行下输入一下命令:C:\> xcopy "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include\Win32.Mak"  "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include"   注意:两个路径要用双引号引起来不然会提示有错。

2、安装Qt

下载安装包, qt-sdk-windows-x86-msvc2013_opengl。注意看清楚,要是msvc2013版的,也请按默认路径安装

3、安装Cygwin

     Cygwin是在线安装的,在选择URL地址的时候可以选,,如果不行选择其中一个可以安装的就行,在进行选择安装包的时候,注意必须安装一下几个包:

Archive/unzip (not needed if using CMake)

Devel/bison (or install Win flex-bison - see Chocolatey below)

Devel/flex (or install Win flex-bison - see Chocolatey below)

Devel/git (recommended - see discussion about using Git below)

Interpreters/perl

Utils/patch (only if needed) (may be Devel/patch instead)

Web/wget (not needed if using CMake)

asciidoc

Interpreters/m4

如果看不大懂这些包的时候,将Archive,Devel,Interpreters,Utils,Web这几个包全部安装就行了。注:也是默认路径安装

4、安装python

这很简单,安装python27,默认路径安装就行。

5、下载wireshark源码

最好在GitHub上下载一般为最新的,,或者到 https://www.wireshark.org/download/src/all-versions/ 下载最新的wireshark源码。

下载完源码后,将其命名为wireshark,并在C盘的根目录下新建一个名为Development的文件夹,然后将wireshark源码存放在里面。

6、配置相关环境(最为关键)

6.1、进入VS2013 --》 Visual studio tools,然后打开x86本机命令行工具,进行一下环境设置

> set CYGWIN=nodosfilewarning

> set WIRESHARK_BASE_DIR=C:\Development

> set WIRESHARK_TARGET_PLATFORM=win32  (如果你的vs2013是64位版本的就改为:win64)

> set QT5_BASE_DIR=C:\Qt\Qt5.3.0\5.3\msvc2013 (注意此处Qt的版本,你有可能安装的是Qt5.3.2,根据自身情况做修改)

> set WIRESHARK_VERSION_EXTRA=-YourExtraVersionInfo

6.2、然后转到wireshark的目录下

> cd  C:\Development\wireshark

6.3、验证安装工具:

> nmake -f Makefile.nmake verify_tools

如果出现以下提示信息就说明没问题

Microsoft (R) Program Maintenance Utility Version 12.00.21005.1 Copyright (C) Microsoft Corporation. All rights reserved. ERROR: The contents of ‘E:\Wireshark\Wireshark-win32-libs\current_tag.txt‘ is (unknown). It should be 2014-10-01.Checking for required applications: cl: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/cl link: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/link nmake: /cygdrive/c/Program Files (x86)/Microsoft Visual Studio 12.0/VC/BIN/nmake bash: /usr/bin/bash bison: /usr/bin/bison flex: /usr/bin/flex env: /usr/bin/env grep: /usr/bin/grep /usr/bin/find: /usr/bin/find peflags: /usr/bin/peflags perl: /usr/bin/perl C:\Python27\python.exe: /cygdrive/c/Python27/python.exe C:\Qt\Qt5.3.0\5.3\msvc2013\bin\qmake: /cygdrive/c/Qt/Qt5.3.0/5.3/msvc2013/bin/qmake sed: /usr/bin/sed unzip: /usr/bin/unzip wget: /usr/bin/wget
注:那个“ERROR”可以忽略。

6.4、安装库
>
nmake -f Makefile.nmake setup
如果没有出现什么错误,继续进行下一步

6.5、编译wireshark
>
nmake -f Makefile.nmake all
在编译过程中如果没有出现任何错误,恭喜你已经编译成功了。编译成功后会生成两个版本的可执行文件,一个是Qt版本的在: C:\Development\wireshark\wireshark-qt-release\Wireshark.exe。 另一个是老的GTK版本的: C:\Development\wireshark\wireshark-gtk2\Wireshark-gtk.exe.

注:如果编译过程中有出现什么错误,根据错误进行相应的修改,修改完后先执行命令
> nmake -f Makefile.nmake distclean
再重新编译
> nmake -f Makefile.nmake all

 总体小结:

  1、这是针对编译新版wireshark编码的方法,网上一些方法都是针对旧版本的,此方法本人亲测可行。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/70039.html