2011-09-26 94 views
0

我在Windows 7和WinPcap(開發人員包)上使用Dev C++。 Dev C++顯然無法找到pcap.h,即使在項目選項中包含/ include /目錄,編譯時也會顯示一個錯誤,指出「pcap.h:沒有這樣的文件或目錄」。 (以及許多其他錯誤)。 這裏是我的代碼:在編譯C++程序時包含外部庫的問題

#include <stdlib.h> 
#include <stdio.h> 
#include <pcap.h> 

int main(int argc, char **argv) 
{ 
pcap_t *fp; 
char errbuf[PCAP_ERRBUF_SIZE]; 
u_char packet[100]; 

    return 0; 
} 

我已經把它簡單。我最初是在Visual Studio(C++)中工作,但分發用Visual C++編譯的代碼需要在目標系統上安裝Microsoft C Runtime庫。我只是希望能夠分發最終的可執行文件並讓它在任何機器上運行。

我檢查了給編譯器的命令行。它did有-I [路徑]選項。那麼有什麼我失蹤?作爲一個方面說明:我已經用g ++(來自dev C++安裝目錄)編譯了上述代碼,並且它編譯正確。但是當我試圖鏈接它時,生成的可執行文件剛剛在運行時崩潰。

+0

您在項目選項中是否包含/ lib或/ bin文件夾?它們通常會被列爲「庫文件夾」或與鏈接器有關的內容。除非你是從源代碼編譯的,否則你需要開發庫(例如,VS,.lib文件和該庫的源代碼一起)。 – Breakthrough

+0

是的,我也包括在內。圖書館目錄。幷包括目錄。在項目選項中。但它仍然無法找到頭文件。 – Rushil

+0

你使用Visual Studio庫文件還是MinGW/Cygwin庫文件? – Breakthrough

回答

1

你的問題有點不清楚,但你的側面說明聽起來好像你可以編譯這個(即發現pcap.h標題),你的問題是鏈接。

要將目錄添加到庫的搜索路徑中,請使用-LPATH,其中PATH是包含libpcap的實際目錄。要將其實際添加到鏈接,請在鏈接器調用中使用-lpcap,例如

$ g++ -o main -LPATH main.o -lpcap 
+0

@Employed:我修復了這個問題,我將這個大腦損壞的錯誤歸因於使用構建系統太久(我對此感到高興 - 使用部分)。 –

+0

+1感謝您修復它。 –