#include <stdio.h>
#include <pcap.h>
int main(int argc,char* argv[])
{
char* dev=argv[1];
char errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL) {
fprintf(stderr,"Couldn't find default device: %s\n",errbuf);
return 0;
}
printf("Device: %s\n",dev);
return 0;
}
编译时:
$ cc pcap1.c
/tmp/ccZLrRlF.o: In function `main':
pcap1.c:(.text+0x37): undefined reference to `pcap_lookupdev'
collect2: ld returned 1 exit status
这也发生在libpcap
库的其他功能上。你可以向我解释一下问题并找出解决方法吗?提前谢谢......
答案 0 :(得分:3)
因为您在编译时没有链接pcap库,所以您尝试使用的所有功能都不可用。
cc pcap1.c -lpcap
如果您尚未在标准库路径中的某处安装libpcap
,则还需要添加
cc pcap1.c -lpcap -L/directory/libpcap/is/in
答案 1 :(得分:0)
我有这个错误,我刚刚解决了它。
我正在使用Debian 7,所以这就是我所做的:
1 - 在这个链接install libpcap
中找到libpcap的内容!!!!!!安装flex(sudo apt-get install bison)因为我遇到了一些问题
安装libpcap
2 - gcc test.c -lpcap返回此错误“collect2:ld返回1退出状态”
3 - 安装了libpcap-devel(sudo apt-get install libpcap-dev)
并且下次进行了
我希望这会对你有所帮助。
祝你好运