windows下编译wireshark源码

时间:2024-03-20 22:42:22

windows下编译wireshark源码

由于工作原因,需要对wireshark做二次开发,从网上找到的wireshark编译一般都是1.6.5版本 ,还有部分是2.4版本,因为公司原本有1.6.5版本的开发案例,现进行全面升级,对于新的wireshark-2.6.1进行编译。目前亲测可行。
详细步骤如下:

编译需要准备以下软件包:
- Visual Studio 2015
- Cmake
- Python
- Cygwin(如果需要本地导入安装包则需要准备CygwinPackages)
- Wireshark-2.6.1源代码和lib库

  1. 安装VS2015编译器
    说明:您可以选择使用其他版本的编译器,推荐使用Visual Studio 2015版本。
    注意:安装完成后检查环境变量,是否存在以下路径,如果没有需要自己手动添加到环境变量中。
    PATH
    C:\Program Files\Microsoft Visual Studio 14.0\VC\bin;
    C:\Program Files\Microsoft Visual Studio 14.0\Common7\IDE
    VS140COMNTOOLS
    C:\Program Files\Microsoft Visual Studio 14.0\Common7\Tools\

  2. 安装Cmake
    https://cmake.org/download/下载并安装Cmake到默认位置,安装完成后检查包含cmake.exe的目录是否添加到PATH中,如果没有则手动添加。

  3. 安装Python
    http://python.org/download/ 下载并安装用于Win32的Python 2.7.14版本(可以是其他版本)
    注意: 请安装到默认的C:\Python27 目录.

  4. 安装Cygwin
    Cygwin是一个在windows平台上运行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,或者进行某些特殊的开发工作,尤其是使用gnu工具集在windows上进行嵌入式系统开发,非常有用。”
    http://coolersky.com/download. 下载Cygwin并运行Setup.exe,
    windows下编译wireshark源码
    勾选“Install from Local Directory”并选择安装以下几个编译Wireshark所必需的安装包 (分类/具体的包):
    • Archive / unzip
    • Devel / bison
    • Devel / flex
    • Interpreters / perl
    •Devel / patch
    • Web / wget
    • Utils/dos2unix
    选择方法: 展开后点击skip,使其变为版本号即可.
    默认安装即可,注意将Cygwin安装目录下的lib路径添加到环境变量中。

  5. 下载Wireshark源码
    从wireshark官网:http://www.wireshark.org/download.html下载 wireshark源码,我编译成功的是wireshark-2.6.1版本。
    解压后源码文件路径为C:\Development\wireshark (Development文件夹需要自己新建)

  6. 修改CMakeOptions.txt文件
    打开源码文件夹wireshark,找到CMakeOptions.txt文件写字板打开,修改:
    • option(BUILD_wireshark “Build Wireshark” ON)这里面ON改成OFF;
    • option(BUILD_wireshark_gtk “Build Wireshark (GTK+ UI)” OFF)这里面OFF改成ON;
    修改之后保存。

  7. 下载编译需要的Lib库
    http://anonsvn.Wireshark.org/Wireshark-win32-libs/trunk/packages/ 下载Win32下编译wireshark所需要的所有库。下载的文件是压缩包,不用解压。
    注意:把下载的库文件全部保存到wireshark-win32-libs-2.6文件夹中,存放路径为C:\Development\ wireshark-win32-libs-2.6 。

  8. 编译wireshark

a) 打开VS2015命令窗口,后续所有的操作都会在这个窗口进行。
所有程序→Visual Studio 2015→Visual Studio Tools→MsBuild Command Prompt for VS2015

b) 在命令行建立环境变量,为编译做准备。在命令行输入以下命令以确定下载目录:

set WIRESHARK_BASE_DIR=C:\Development
如果你使用的Visual Studio是早于VS2012版本,你需要执行以下命令(以VS2010为例):
set VisualStudioVersion=10.0

c) 建立一个合适的编译目录,Cmake最好在树外的构建配置中使用,建立这个目录之后,编译会在这个单独的目录中完成。而不会在源码树中完成。
命令行输入:

mkdir C:\Development\wsbuild32

d) 进入编译目录中,命令行输入:

cd C:\Development\wsbuild32
注意:如果中途关闭了命令窗口,则要重复操作a) b) d)步骤

e) 生成编译文件,命令行输入:

cmake -G “Visual Studio 14 2015” ..\wireshark

f) 在Cmake生成过程的末尾显示一下信息,说明编译文件已经顺利生成,可以进入编译步骤.
– Configuring done
– Generating done
– Build files have been written to: C:/Development/wsbuild32
注意:如果Cmake过程出现错误,则在修改完错误之后,删除wsbuild32目录下的所有文件再重新执行e)步骤。

g) 最后,执行以下命令就可以开始编译了,整个编译过程时间比较长,请耐心等待,在系统没有给出明确提示之前,不要关闭窗口。

msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln

h) 如果编译过程出现错误,则需要在修改错误之后执行以下命令,清除之前编译信息再重复g)操作。

msbuild /m /p:Configuration=RelWithDebInfo Wireshark.sln /t:Clean

i) 如果编译完成之后没有出现错误,打开C:\Development\wsbuild32\run\RelWithDebInfo\Wireshark.exe,可以运行,直到这里整个编译过程结束,Wireshark编译成功,开始准备在上面编写插件。

编译过程问题说明:
• VS2015用英文版,中文版会使wireshark部分文件乱码。
• 添加环境变量:gtk路径(libs库中)添加到PATH,Cmake安装C盘,安装时勾选环境变量添加。
• Cmake出错之后删除wsbuild32文件夹中内容;
• Msbuild出错之后clean
• 错误:找不到compiler..
原因:VS2015问题,安装C++,环境变量需要修改。
错误:找不到7-zip
原因:安装7-zip路径添加到环境变量
错误:Qt文件找不到
原因:CMakeOptions这个文件要修改一下option(BUILD_wireshark_gtk “Build Wireshark (GTK+ UI)” OFF)这里面OFF改成ON;
option(BUILD_wireshark “Build Wireshark” ON)这里面ON改成OFF;

本人已编译完成并二次开发完成,诸君按以上步骤操作若有它疑,Q:937968907.坐等牛牛赐教。