windows 下如何成功编译wireshark 1.6.5

来源:互联网 发布:linux samba 用户 编辑:程序博客网 时间:2024/05/01 17:04
 

windows 下如何成功编译wireshark 1.6.5

一直想研究一下wireshark的源代码,由于各种原因一直未能付诸行动,也害怕wireshark的代码比较复杂,今天终于鼓起勇气开始学习。学习首先要编译wireshark源代码,于是在网上查找了很多资料,学习了很多人得编译教程后开始尝试自己编译,编译过程中也遇到了很多问题,但最后都得到解决,终于编译成功,先将自己的体会与大家分享,希望有朋友在以后的编译过程中遇到了类似的问题可以有个参考。在编译过程中需要一下软件:Visual Studio,Python,Cygwin以及Wireshark源代码。

1. Visual Studio

我使用的是Visual Studio 2008版本。

2. Python

下载安装Python,从2.4 – 2.6应该都是可以的,我使用最新的3.2.2版本。主要是在编译过程中会使用到Python。

3. Cygwin

去Cygwin上下载最新版本安装,然后开始安装,整个安装过程是在线安装,特别注意的是,以下库必须安装,否则不能顺利完成编译:

Archive / unzip 

Devel / bison 

Devel / flex 

Interpreters / perl 

Utils / patch 

Web / wget

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

输入这个网址,http://www.wireshark.org/download/src/all-versions/,从上面下载Wireshark源代码,这里,值得一提的是,最好下载页面中给出的svn中的源代码,能保证该代码绝对是最新的。

下载完成之后,在Wireshark目录里面打开config.nmake,需要进行一些设置之后才可以开始编译。

(1)VERSION_EXTRA, 加入自定义版本号, 如"-myversion".

(2)WIRESHARK_LIBS, 设置编译wireshark所需的库所在的目录,默认即可。
(3)PROGRAM_FILES,设置本机程序安装目录,默认即可。
(4)MSVC_VARIANT,因为我使用VS2008编译,所以这里不要修改。如果使用的是其他版本的VS,则要将相应行前面的#去掉,并把其余行的#加上。例如如果你使用的是VS2005,则将值为MSVC2005的那一行前的#去掉,其余MSVC_VARIANT项行首全部加上#注释掉。
(5)CYGWIN_PATH,将其设置为cygwin的bin目录,例如D:\cygwin\bin。
(6)MSVCR_DLL,如果VS安装在D盘,请在这里相应的地方用绝对路径表示,而不要去修改前面的PROGRAM_FILES,否则会出现意想不到的错误。如我的VS安装在D盘,则将“MSVCR_DLL=$(PROGRAM_FILES)\Microsoft Visual Studio 9.0\VC\redist\$(PROCESSOR_ARCHITECTURE)\Microsoft.VC90.CRT\*.*”前面加上“#”,

然后在下面加上一句“MSVCR_DLL=D:\Program Files\Microsoft Visual Studio 9.0\VC\redist\$(PROCESSOR_ARCHITECTURE)\Microsoft.VC90.CRT\*.*”。我自己在这个问题上纠结了很久。

5. 编译Wireshark

用VS2008安装的VS2008命令提示进入或者通过CMD进入之后,再去运行VC下面的vcvars32.bat,或者是把vcvars32.bat拖到命令窗口,再回车就行。然后进去Wireshark目录,首先通过下面的命令检验一下。关于如何进入Wireshark目录我想简单说一下,比如你的Wireshark源代码放在E盘,而刚开始路径是C:\Documents and Settings\Administrator>,如果你输"cd e:\Wireshark"不行的话,就先直接输"e:",进入E盘根目录,然后输"cd wireshark"进入源代码文件夹。

nmake -f Makefile.nmake verify_tools

得到的信息如下:

第一次编译出现的错误:"Can't find:  bison flex perl unzip wget",即没有安装以上6个库,重新安装Cygwin,将以上需要的库选择上。请安装完成再运行以上命令,直到出现没有错误。

6. 执行nmake –f Makefile.nmake setup

    这时,会在WIRESHARK_LIBS目录下下载一些库文件并解压完成,下载的网速比较慢,需要等待一段时间。最后,执行以下命令就可以开始编译了,整个编译过程时间上比较长,请耐心等待,在系统没有给出明确的提示之前,不要关闭。

7. 先执行下nmake –f Makefile.nmake distclean

来清除源代码中用于在其他平台下编译的文件


8. 执行nmake –f Makefile.nmake all

    来编译wireshark,最后编译成功!!!

原创粉丝点击