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

现在详细介绍编译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地址的时候可以选,http://mirror.kenerl.org,如果不行选择其中一个可以安装的就行,在进行选择安装包的时候,注意必须安装一下几个包:

  • 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;msvc2013的文件名可能为msvc2013_opengl根据自身情况做修改)
> 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:


C:\Development\wireshark\wireshark-qt-release\Wireshark.exe。 另一个是老的GTK版本的: C:\Development\wireshark\wireshark-gtk2\Wireshark-gtk.exe.

注:如果编译过程中有出现什么错误,根据错误进行相应的修改,修改完后先执行命令
> 
C:\Development\wireshark\wireshark-gtk2\Wireshark-gtk.exe

 总体小结:

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

  2、希望严格按照步骤一步步下来,可以少走弯路,上述软件一定按默认路径安装,可以减少修改路径的麻烦,不默认安装也行,不过到时修改路径会遇到各种问题,除非你对wireshark的源码很熟悉。

  3、以上安装是针对32位系统的,64位系统也是一样,只是相应软件下载64位版本的。

  4、如果在退出vs终端重新编译的时候提示没有找到Qt,请重新在终端上输入命令:>set QT5_BASE_DIR=C:\Qt\Qt5.3.0\5.3\msvc2013 (记得文件名做相应修改)。

  5、如果你是看我提供的英文版的说明,它提供了一种在线安装的方法。不过建议还是下载安装包安装,在线安装一般都不会成功,也不知什么原因。

ps:配置编译的过程很痛苦,不过编译成功后,你会收获很多,也祝你在编译wireshark源码的路上,少走弯路。