2014-11-24 49 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