编译参考文献:http://blog.youkuaiyun.com/woods2001/article/details/6324552
问题:win32.mak not found
https://ask.wireshark.org/questions/14343/setting-development-project-under-visual-studio-2012
由以上网址得出只要将包含win32.mak文件的目录添加到环境变量中就好了命令如下
set INCLUDE=%INCLUDE%;C:\Program Files (x86)\Microsoft SDKs\Windows\v7.1A\Include
如果没有win32.mak文件的话,就要从这个网址下载Microsoft SDK,安装后就会有win32.mak文件了。
http://www.microsoft.com/en-us/download/confirmation.aspx?id=8279
问题:wireshark 'bash' is not recognized as an internal or external command
Config.nmake sets the path to Cygwin to be C:\cygwin\bin
.这个Cygwin没有改对。
问题:_MSC_VER is:1900 but required is:1700
因为我的visual studio是2015版本的,而wireshark只支持到2013,所以出现问题,我又重新安装了visual studio2012.然后在2012的命令行下进行
nmake -f Makefile.nmake setup,这样这个问题就解决了。
编译wireshark命令:
在wireshark根目录下执行下列命令
//安装前验证 nmake -f Makefile.nmake verify_tools //下载编译过程中所需要的库文件 nmake -f Makefile.nmake setup //这时,会在wireshark_libs 目录下下载一些库文件并解压完成 //来清除源代码中用于在其它平台下编译的文件 nmake -f Makefile.nmake distclean //编译 nmake -f Makefile.nmake all这时,如果一切都正常,就会在最后显示:
正在创建库 libwireshark.lib 和对象 libwireshark.exp,这样底下这个问题就解决了。
问题:
NMAKE : fatal error U1073: don't know how to make ..\..\epan\libwireshark.lib'stop.
经过测试:原始代码在进行插件编译的时候也会有这个问题,所以猜测是源代码整体编译时没有成功,导致缺少一些库。所以得重新编译wireshark。
编译插件命令和方法:
打开VS2008/2010的CMS窗口 pushd C:\Documents and Settings\Administrator\桌面\tools\wireshark_32\source\wireshark-1.11.3\plugins\foo nmake -f Makefile.nmake distclean: (删除其他平台的冗余代码) nmake -f Makefile.nmake all: (编译插件)
这样就真正进入到了插件编译环节。
在当前文件夹下生成.dll文件
注意在wireshark下定义帧格式的时候,需要这样
#ifdef __MINGW32__
__attribute__((__packed__))
#endif
之后将我们生成的.dll文件拷贝到我们自己安装的相应版本的plungs目录下
我的是D:\Program Files\WiresharkPortable\App\Wireshark\plugins。这样当自己安装的wireshark启动的时候就会扫描这个文件夹,并加载相应的动态库。
问题:Qt没安装。
未解决
https://www.wireshark.org/docs/wsdg_html_chunked/ChSetupWin32.html
6.在相应的目录下,进行插件编译。然后将编译生成的插件插入到相应的目录。
将自己编写的代码拷贝到源代码的plugins文件夹下,然后从相应的visual stidio cd进入到此文件夹,执行命令:
nmake -f Makefile.nmake distclean
nmake -f Makefile.nmake all
如果代码正常的话,就会生成.dll文件。
复制动态库文件到安装目录的插件目录(如D:\Program Files\WiresharkPortable\App\Wireshark\plugins\1.12.2)里。
下载编译要用的Lib库 http://anonsvn.wireshark.org/wireshark-win32-libs/trunk/packages/
Makefile.nmake: 这个文件是Windows平台下WireShark内置插件的makefile
plugin.rc.in: Windows平台下的DLL资源模板。