在windows下编译wireshark的一些问题记录

1 nmake.exe 用VC自带的,位置:C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin

 

2 在verify tool时出错:不能在lib目录找到current_tag.txt。解决:手动创建此文件,并根据提示写上内容,一般是一个日期字符串,如2013-10-12。

 

安装cygwin时,一些必要的tools(如bison, flex, wget等等)默认是不安装的,需要手动安装。这里要注意的是mt,wireshark需要的mt.exe是windows自带的SDK里的,在目录 C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin 里,不是cygwin里的。环境变量里配置的如果是指向cygwin\bin下的mt, 在verify_tools(#nmake -f makefile.nmake verify_tools)时会提示找不到mt, 且报错如下:

NMAKE : fatal error U1077: 'D:\cygwin\bin\bash.EXE' : return code '0x1'

所以,设置环境变量PATH时,要把C:\Program Files\Microsoft SDKs\Windows\v6.0A\Bin放在前面。

 

必需的工具在变量REQUIRED_TOOLS里定义(在文件Makefile.nmake里)。

 

必须用VS2008 Command Prompt(不能只是用command窗口)进行编译,否则会出现fatal error LNK1103一类的错误。原因在于VS2008 Command Prompt设置了很多必要的环境变量(主要差别在PATH)。

 

6 INCLUDE环境变量里要配置 cygwin\usr\include,否则将找不到stdint.h

 

7 编译gdk时,报N多的字符不能识别的告警,最后编译失败未能生成obj文件。解决办法:将相应的不能识别的文件另存为ANSI编码的格式再重新编译。原因是VC不能识别某些UTF-8的字符。我这里出问题的文件是Wireshark-win32-libs\gtk3\include\gtk-3.0\gdk\gdkversionmacros.h

 

编译之前的环境准备参考以下两篇文章:

http://www.cnblogs.com/zzqcn/archive/2013/04/23/3039110.html

http://blog.csdn.net/hcj2002/article/details/2255637

 

Wireshark的插件开发参考:

http://blog.csdn.net/qgw_2000/article/details/5327519 

http://www.codeproject.com/Articles/19426/Creating-Your-Own-Custom-Wireshark-Dissector


你可能感兴趣的:(在windows下编译wireshark的一些问题记录)