在深受了几天编译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地址的时候可以选,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,根据自身情况做修改)
> 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编码的方法,网上一些方法都是针对旧版本的,此方法本人亲测可行。
2、希望严格按照步骤一步步下来,可以少走弯路,上述软件一定按默认路径安装,可以减少修改路径的麻烦,不默认安装也行,不过到时修改路径会遇到各种问题,除非你对wireshark的源码很熟悉。
3、以上安装是针对32位系统的,64位系统也是一样,只是相应软件下载64位版本的。
4、如果你是看我提供的英文版的说明,它提供了一种在线安装的方法。不过建议还是下载安装包安装,在线安装一般都不会成功,也不知什么原因。
ps:配置编译的过程很痛苦,不过编译成功后,你会收获很多,也祝你在编译wireshark源码的路上,少走弯路。