配置ethereal编译环境

  因为工作需要要分析公司自己开发的协议软件,需要抓包分析,因而接触到ethereal插件开发,运行平台是windows。网上查了很多资料,结合自己开发的实践,写下这份文档,希望对其他人有用。

在windows平台下开发,用Cygwin + VC6.

首先介绍Cygwin的安装步骤。我下载的是一个CygwinISO镜像文件,可以用虚拟光驱打开,点击Setup,点下一步,选择Install from local Directory,点下一步

选择安装在C:\cygwin下,后下一步,选择cygwin的源目录,如图:

下一步,点击列表中 ALL Default,如图,

 

使其变为ALL Install,也可以选择自己想要的包

点击下一步就开始安装。

安装到%99时候可能要等很长时间,(如果长时间在%99没有完成,可点取消完成安装,我是这样做的,也没出现什么问题)。

安装完成后,把C:\cygwin\bin 添加到系统的环境变量中PATH中。

下面讲VC6的环境变量的设置。

  个人根据安装的VC6的路径不同进行修改,如果在安装VC6时已经注册了环境变量下面的步骤就不需要了。

  默认情况下环境变量中没有Include变量,需要新建Include变量然后添加如下变量值
  C:\Program Files\Microsoft Visual Studio\VC98\ATL\Include;
  C:\Program Files\Microsoft Visual Studio\VC98\Include;
  C:\Program Files\Microsoft Visual Studio\VC98\MFC\Include;
  默认情况下环境变量中没有Lib变量,需要新建Lib变量添加如下变量值
  C:\Program Files\Microsoft Visual Studio\VC98\Lib;
  C:\Program Files\Microsoft Visual Studio\VC98\MFC\Lib;

  接下来把ethereal-win32-libs文件夹放在C盘根目录下。

  这样整个编译环境就搭建好了,接下来测试已安装工具的有效性。

  进入Windows控制台,先进入Ethereal源码所在目录,运行nmake -f Makefile.nmake verify_tools

正常情况下如图所示:

  接下来编译ethereal输入nmake -f makefile.nmake all
遇到了找不到unistd.h头文件的错误,解决办法自己新建一个unistd.h头文件,内容如下:

/** This file is part of the Mingw32 package.
* unistd.h maps     (roughly) to io.h
*/

#ifndef _UNISTD_H
#define _UNISTD_H

#include <io.h>
#include <process.h>

#endif /* _UNISTD_H */

  将其放到include的环境变量值所指的目录下,如C:\Program Files\Microsoft Visual Studio\VC98\Include;

编译成功之后会在源码文件夹中生成ethereal.exe文件,现在运行ethereal.exe会提示缺少wiretap-0.3.dll、 intl.dll等动态链接库。解决办法是在cmd下运行nmake -f makefile.nmake install-deps。将所需的dll拷到源码文件的根目录下

  环境搭好了,进行插件的开发,可以参考文件夹plugins下的各个例子。

 




 

 


原文地址:https://www.cnblogs.com/yemeng/p/1994303.html