关于libpcap的使用问题
小弟刚刚接触Linux下的C++编程,现遇到问题如下,望高手指点:
我使用的是Fedora Core 5,安装了gcc 4.1.2和libpcap 0.9.5
测试程序
#include <stdio.h>
int main()
{
printf( "Hello Linux\n ");
return(0);
}
能够成功编译运行,但是当我想用libpcap时却不行,程序如下:
#include <stdio.h>
#include <pcap.h>
int main()
{
char *dev,errbuf[100];
dev=pcap_lookupdev(errbuf);
printf( "Device:%s\n ",dev);
return(0);
}
我输入命令gcc -lpcap -o tlibpcap tlibpcap.c,
报错:/tmp/ccwaZYRh.o: In function `main ':tlibpcap.c:(.text+0x1b):对‘pcap_lookupdev’ 未定义的引用
collect2: ld 返回 1
我libpcap的安装方法如下:
解压后,输入./configure,然后make install
望高手指点,不生感激!!
[解决办法]
在我这里你的测试代码可以编译通过。
libpcap一般的发行版都有,不用找源码安装,可以到光盘上找rpm包安装。
如果是源码安装,缺省的可能安装到/usr/local/lib下,你可以找一下是否在那里:
find /usr -name "libpcap* "
再看看/etc/ld.so.conf文件,那个目录是否在搜索路径里面,没有就加进去然后运行ldconfig -v
或者在编译的时候指定库的搜索路径:
gcc -L/usr/local/lib ......
[解决办法]
gcc -o tlibpcap tlibpcap.c -Llibpcap库函数所在的目录 -lpcap
[解决办法]
-L "libpcap库函数所在的目录 "
注意引号是没有的
[解决办法]
应该是没有找到libpcap的路径