主要参考
https://wenku.baidu.com/view/854c986d011ca300a6c39081.html
编译环境
WIN7,wireshark1.9.0,VS2010,Python2.7
自己搭建环境过程中遇到的问题
问题一
描述:
E:\wireshark\wireshark-1.9.0>nmake -f Makefile.nmake verify_tools
Makefile.nmake(10) : fatal error U1052: 未找到文件“win32.mak”
Stop.
原因:
wireshark 在Windows下的编译需要/include目录中的win32.mak文件,没有的话需要安装。
问题二
描述:
‘bash’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
原因:
cgywin环境变量没有设置 在path环境变量中加入cygwin\bin路径, 例如: C:\cygwin\bin
问题三
描述:
Can’t find: bison flex perl unzip wget
原因:
下载cygwin安装包时,没有选择一些需要的安装包
问题四
描述:
Assembling: contrib/masmx86\match686.asm
rc /dWIN32 /r /fozlib1.res win32/zlib1.rc
‘rc’ 不是内部或外部命令,也不是可运行的程序
或批处理文件。
NMAKE : fatal error U1077: “rc”: 返回代码“0x1”
Stop.
NMAKE : fatal error U1077: “”D:\Program Files (x86)\Microsoft Visual Studio 10.
0\VC\bin\nmake.exe””: 返回代码“0x2”
Stop.
原因:
rc.exe是在Microsoft SDKs目录下的Bin文件,从错误命令看,肯定是环境变量没有设置。Microsoft SDKs的环境变量没有设置,rc.exe在该目录下 D:\Program Files\Microsoft SDKs\Windows\v7.0\Bin
问题五
描述
正在创建库 zdll.lib 和对象 zdll.exp
LINK : fatal error LNK1123: 转换到 COFF 期间失败: 文件无效或损坏
NMAKE : fatal error U1077: “”D:\Program Files (x86)\Microsoft Visual Studio 10.
0\VC\bin\link.EXE””: 返回代码“0x463”
Stop.
NMAKE : fatal error U1077: “”D:\Program Files (x86)\Microsoft Visual Studio 10.
0\VC\bin\nmake.exe””: 返回代码“0x2”
Stop.
原因
查看计算机是否为64bit操作系统,如是,继续如下操作。
查找是否有两个cvtres.exe。
C:\Program Files(x86)\Microsoft Visual Studio 10.0\vc\bin\cvtres.exe
C:\Windows\Microsoft.NET\Framework\v4.0.30319\cvtres.exe
右键属性—详细信息, 查看两者版本号,删除/重命名较旧的版本。
我是用Microsoft.NET目录下的替换了Microsoft Visual Studio 10.0目录下
问题六
描述
bash -o igncr tools/textify.sh “./COPYING” wireshark-gtk2
tools/textify.sh: line 50: u2d: command not found
NMAKE : fatal error U1077: “C:\cygwin\bin\bash.EXE”: 返回代码“0x7f”
Stop.
原因
Linux环境中,典型的没有找到u2d时的错误提示,在该问题中,肯定是cygwin环境中没有安装u2d这个bin文件。cygwin里没有安装u2d工具,需要安装Utils/dos2unix 包,重新运行Cygwin setup.exe,找到需要的包,并安装
编译dll插件时,遇到的问题
问题一
-
描述
e:\wireshark\wireshark-1.9.0\epan\except.h(96) : error C2054: 在“WS_MSVC_NORETU
RN”之后应输入“(”
e:\wireshark\wireshark-1.9.0\epan\except.h(96) : error C2085: “except_rethrow”
-
不在形参表中
e:\wireshark\wireshark-1.9.0\epan\except.h(97) : error C2082: 形参“WS_MSVC_NORE
TURN”的重定义
e:\wireshark\wireshark-1.9.0\epan\except.h(97) : error C2143: 语法错误 : 缺少“;
”(在“类型”的前面)
….
….
原因
去掉.c文件中的宏定义
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
问题二
描述
packet-hbllrp.c(968) : error C2220: 警告被视为错误 - 没有生成“object”文件
packet-hbllrp.c(968) : warning C4113: “int (__cdecl )(tvbuff_t ,packet_info *
,proto_tree *)”和“new_dissector_t”的参数列表不同
NMAKE : fatal error U1077: “”D:\Program Files (x86)\Microsoft Visual Studio 10.
0\VC\bin\cl.EXE””: 返回代码“0x2”
Stop.
原因
修改vc的告警级别,可以解决此问题。
右击选择属性->配置属性->c/c++->常规,将“警告视为错误”的选项改为“否”
其他注意事项
nmake -f Makefile.nmake setup
是下载编译过程中所需要的库文件,里面有一个WIRESHARK_LIB_DIR变量,需要设置成之前下载的lib包的路径,否则会自动从国外网站上获取,速度很慢。