VS2008 winpcap配置(解決fatal error C1083: Cannot open include file: 'sys/time.h'...

網上大多winpcap配置是關於vc6的,今天花了大半天用來配置在VS2008下的winpcap配置,我用的winpcap是4.0.2:配置過程如下:
1.安裝WinPcap_4_0_2.exe,即可以抓包的驅動程序
2。下載winpcap開發包WpdPack_4_0_2.zip,裏面有關開發相關的函數庫以及例子
3. 打開.net平臺,設置環境目錄;在菜單:工具->選項;彈出的選項窗體左邊點擊:項目和解決方案->VC++目錄;在右邊:“顯示以下內容的目錄”標籤下面的 下拉框中找到“包含文件”,然後對應到第二步下載開發包的Include目錄;在同一下拉框中找到“庫文件”,然後對應到第二步下載開發包的lib目錄;
4. 設置編譯條件;在項目屬性頁中:配置屬性->C/C++->預處理器->預處理器定義,增加;WPCAP;HAVE_REMOTE;每 一個預定義符用";"隔開;在項目屬性頁中:配置屬性->鏈接器->命令行->附加選項對應的文本框中增加:“wpcap.lib ws2_32.lib”;
5.這時運行winpcap程序會出現錯誤:fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory
這是由於pcap.h的預編譯問題造成的,打開pcap.h,可以看到開頭有這幾行預編譯代碼:
#if defined(WIN32)
#include <pcap-stdinc.h>
#elif defined(MSDOS)
#include <sys/types.h>
#include <sys/socket.h> /* u_int, u_char etc. */
#else /* UN*X */
#include <sys/types.h>
#include <sys/time.h>
#endif /* WIN32/MSDOS/UN*X */
放在Vc 6.0下就不會錯,因爲系統可以識別出WIN32已經定義過了,就執行了#include <pcap-stdinc.h>,但在Vs2008下,我猜測WIN32沒有被預定義過,因而直接到了
#else /* UN*X */
#include <sys/types.h>
#include <sys/time.h>
代碼這裏,這裏是Unix的庫文件,當然會出現:fatal error C1083: Cannot open include file: 'sys/time.h': No such file or directory的錯誤提示了.
解決辦法:可以把這些預編譯全部註釋掉,留下 #include <pcap-stdinc.h>,這樣問題就可以解決了。

發佈了15 篇原創文章 · 獲贊 20 · 訪問量 29萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章