2014-11-24 84 views
5

我試圖去通過本教程:使用 http://www.tcpdump.org/pcap.htmlPCAP功能有「未定義的引用」

現在我有安裝PCAP(代碼提示和一切工作):

sudo apt-get install libpcap-dev 

和到目前爲止,我有以下代碼(文件名是example_pcap.c):

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

int main(int argc, char *argv[]) { 
    char *dev, errbuf[PCAP_ERRBUF_SIZE]; 

    dev = pcap_lookupdev(errbuf); 

    return 0; 
} 

據我所看到的許多問題已經他們說用這個來編譯:

gcc -lpcap example_pcap.c -o example_pcap 

但是我仍然得到以下錯誤:

example_pcap.c:(.text+0x32): undefined reference to `pcap_lookupdev' 
+1

@NTN 1.鏈接錯誤,通常是無關頭文件,和2.錯誤消息是**不**「庫找不到」。問題在於庫存在錯誤的地方 - 應該在源文件之後。 – 2014-11-24 15:21:30

+0

哦,是的,你可以使用-L/your/path /添加新路徑來定位lib – 2014-11-24 15:25:39

回答

12
+1

正如'gcc example_pcap.c -o example_pcap -lpcap'(我添加了-o來獲得一個名稱比' a.out') – Jite 2014-11-24 15:26:00

+0

這工作,但現在我有點困惑。作爲我課程的一部分,他們已經給了我make文件。現在make文件在其餘部分有-lpcap參數。他們犯了錯誤,還是有辦法確保它一開始就停留? – 2014-11-24 15:31:37

+0

正在鏈接../build/idsniff gcc -lpcap -lpthread -o ../build/idsniff ../build/analysis.o ../build/dispatch.o ../build/main.o ../build /sniff.o ../build/sniff.o:在函數'sniff'中: /home/yahya/workspace/osCoursework/src/sniff.c:15:undefined reference to'pcap_open_live' /home/yahya/workspace/osCoursework/src/sniff.c:27:undefined reference to'pcap_next' /home/yahya/workspace/osCoursework/src/sniff.c:31:undefined reference to'pcap_geterr' – 2014-11-24 15:33:49