日期:2014-05-16  浏览次数:20659 次

关于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的路径