天天看點

在Windows上編譯Wireshark源代碼 .

Wireshark最近需要開發Wireshark插件,分析一套協定,于是首先要解決的問題就是如何在windows環境下編譯Wireshark,編譯過程中也借鑒了一些網上的資料,但是基本都有問題,在經曆無數次的失敗之後的摸索,最終在Wireshark編譯成功。 在編譯過程中需要一下軟體:Visual Studio,Python,Cygwin以及Wireshark源代碼。1. Visual Studio我使用的是Visual Studio 2005版本,據說從VC6到VS2008都可以支援。2. Python下載下傳安裝Python,從2.4 – 2.6應該都是可以的,我使用2.4版本。主要是在編譯過程中會使用到Python。3. Cygwin去Cygwin上下載下傳最新版本安裝,然後開始安裝,整個安裝過程是線上安裝,特别注意的是,以下庫必須安裝,否則絕對順利完成編譯:[cpp] view plaincopyprint?01.Archive / unzip 02.Devel / bison 03.Devel / flex 04.Interpreters / perl 05.Utils / patch 06.Web / wget Archive / unzipDevel / bisonDevel / flexInterpreters / perlUtils / patchWeb / wget4. 下載下傳Wireshark源代碼 & 編輯config.nmake輸入這個網址,http://www.wireshark.org/download/src/all-versions/,從上面下載下傳Wireshark源代碼,這裡,值得一提的是,網上所有編譯的Wireshark都是0.99.7版本的,其實這個版本是很有問題的。這裡建議編譯1.2.7版本,我是在1.2.7版本上面編譯成功的。下載下傳完成之後,在Wireshark目錄裡面打開config.nmake,需要進行一些設定之後才可以開始編譯。(1)WIRESHARK_LIBS, 設定編譯wireshark所需的庫所在的目錄,預設即可。(2)PROGRAM_FILES,設定本機程式安裝目錄,預設即可。(3)MSVC_VARIANT,因為我使用VS2005編譯,是以這裡将值為MSVC2005的那一行前的#去掉,其餘MSVC_VARIANT項行首全部加上#注釋掉。(4)CYGWIN_PATH,将其設定為Cygwin的bin目錄,例如D:/Cygwin/bin。(5)PYTHON及其後的PATH,将其修改為本機python.exe和其安裝目錄的位置,例如D:/Python2.4/Python.exe。其餘的選項都預設即可。(6)MSVCR_DLL,如果VS安裝在D盤,請在這裡相應的地方用絕對路徑表示,而不要去修改前面的PROGRAM_FILES,否則會出現意想不到的錯誤。5. 編譯Wireshark用VS2005安裝的VS2005指令提示進入或者通過CMD進入之後,再去運作VC下面的vcvars32.bat。然後進去Wireshark目錄,首先通過下面的指令檢驗一下:[cpp] view plaincopyprint?01.nmake -f Makefile. nmake verify_tools nmake -f Makefile.nmake verify_tools如果正确的話,應該出現以下提示,如果不是缺少庫之類的,請安裝完成再運作以上指令,直到出現沒有錯誤。C:/wireshark>nmake -f Makefile.nmake verify_tools Microsoft (R) Program Maintenance Utility Version 6.00.8168.0 Copyright (C) Microsoft Corp 1988-1998. All rights reserved. Checking for required applications: cl: /cygdrive/e/dev/vc6/VC98/BIN/cl link: /cygdrive/e/dev/vc6/VC98/BIN/link nmake: /cygdrive/e/dev/vc6/VC98/BIN/nmake bash: /usr/bin/bash bison: /usr/bin/bison flex: /usr/bin/flex env: /usr/bin/env grep: /usr/bin/grep /usr/bin/find: /usr/bin/find perl: /usr/bin/perl C:/python24/python.exe: /cygdrive/c/python24/python.exe sed: /usr/bin/sed unzip: /usr/bin/unzip wget: /usr/bin/wget然後下載下傳編譯過程中需要的庫檔案:nmake -f Makefile.nmake setup這時,會在WIRESHARK_LIBS目錄下下載下傳一些庫檔案并解壓完成。最後,執行以下指令就可以開始編譯了,整個編譯過程時間上比較長,請耐心等待,在系統沒有給出明确的提示之前,不要關閉。nmake -f Makefile.nmake all直到這裡整個編譯過程就結束了,Wireshark編譯成功了,我們就可以在上面開始準備編寫插件了。