搭建win下wireshark编译环境

1. Visual Studio 我用的是2013版本

2. Python 我用的是2.7

3. Cygwin我取的最新的

 

去Cygwin上下载最新版本安装,地址是https://cygwin.com/install.html,我选择的是64位,

 

然后开始安装,整个安装过程是在线安装,特别注意的是,以下库必须安装,否则后面编译会报各种错误:

Archive  unzip  

Devel  bison  

Devel  flex  

Interpreters  perl  

Utils  patch  

Web  wget  

安装步骤:我这边都是默认安装,到选包的地方搜索对应的包添加最新的包

  注意:第一次选包有点没看懂操作步骤,选full点击skip就可以选版本,如下图

搭建win下wireshark编译环境

4. 下载Wireshark源代码 & 编辑config.nmake

输入这个网址,http://www.wireshark.org/download/src/all-versions/,从上面下载Wireshark源代码,最开始选的是最新版本wireshark-2.6.2,配置的时候发现找不到config.nmake了,所以改用了wireshark-2.0.2版本

下载完成之后,在Wireshark目录里面打开config.nmake,需要进行一些设置之后才可以开始编译。
(1)MSVC_VARIANT,因为我使用VS2013编译,所以这里将值为MSVC2013的那一行前的#去掉,其余MSVC_VARIANT项行首全部加上#注释掉。
(2)CYGWIN_PATH,将其设置为Cygwin的bin目录,例如C:\cygwin64\bin。
(3)PYTHON及其后的PATH,将其修改为本机python.exe和其安装目录的位置,例如C:/Python2.7/Python.exe。
其余的选项都默认即可。
5. 编译Wireshark

安装好了VS2013之后,打开你的安装目录\Common7\Tools,将其中的vsvars32.bat文件拖入到终端命令行

C:\Users\lxh>C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools\vsvars32.bat

C:\Users\lxh>cd c:\work

进入wireshark目录开始编译

c:\work>cd wireshark-2.0.2

c:\work\wireshark-2.0.2>nmake -f Makefile.nmake verify_tools

Microsoft (R) 程序维护实用工具 12.00.21005.1 版

版权所有 (C) Microsoft Corporation。  保留所有权利。

Can't find Qt. This will become a problem at some point.

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

        sed: /usr/bin/sed

        unzip: /usr/bin/unzip

        wget: /usr/bin/wget

 

c:\work\wireshark-2.0.2>nmake -f Makefile.nmake setup

c:\work\wireshark-2.0.2>nmake -f Makefile.nmake distclean

c:\work\wireshark-2.0.2>nmake -f Makefile.nmake all

等10来分钟。。。

 

直到这里整个编译过程就结束了,Wireshark编译成功了。成功编译后的wireshark源代码文件夹中出现了很多目标文件,还生成了一个wireshark-gtk2文件夹,里面有好几个exe文件,比如wireshark.exe,tshark.exe,dumpcap.exe等。具体如下所示:

搭建win下wireshark编译环境

 

安装过程中,我这边出现了两个问题

1、致命错误 U1052: win32.mak

修复︰致命错误 U1052: win32.mak,找不到文件

问题是由于下面的命令产生的:

   NMAKE MAKEFILE<Enter>

原因

这是由于 Visual C++ 安装程序无法复制win32.mak文件到你的INCLUDE目录。包括目录 MAK。

解决方案

将win32.mak从c盘查找到

复制到c:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\include目录下

 

2、Can't locate English.pm in @INC (you may need to install the English module) (@INC contains: /usr/local/lib/perl5/site_perl/5.26/x86_64-cygwin-threads /usr/local/share/perl5/site_perl/5.26 /usr/lib/perl5/vendor_perl/5.26/x86_64-cygwin-threads /usr/share/perl5/vendor_perl/5.26 /usr/lib/perl5/5.26/x86_64-cygwin-threads /usr/share/perl5/5.26) at make-version.pl line 65.

BEGIN failed--compilation aborted at make-version.pl line 65.

NMAKE : fatal error U1077: “C:\cygwin64\bin\perl.EXE”: 返回代码“0x2”

Stop.

 

——说明perl模块版本太低,cygwin中的库更新到最新版本

 

3、如果编译报错,多半都是cygwin的包导致的,双击setup-x86_64.exe再次加载所需要的包即可,国内文献较少,遇到问题也可以在biying上查找,碰碰运气!

 

我参考的文献:

https://blog.****.net/xy2bl/article/details/51636560

https://wenku.baidu.com/view/854c986d011ca300a6c39081.html