在ubuntu下安装libpcap库

原创 2011年12月22日 17:28:11

这两天公司里要我了解一下pcap,但是还不知道它是干什么的。首先,我从网上查到了,pcap实际上是抓包库。这个抓包库给抓包系统提供了一个高层次的接口。所有网络上的数据包,甚至是那些发送给其他主机的,通过这种机制,都是可以捕获的。它也支持把捕获的数据包保存为本地文件和从本地文件读取信息。进一步了解到,在linux下的这个库是libpcap,libpcap是unix/linux平台下的网络数据包捕获函数包,并且大多数网络监控软件都以它为基础。在windows下对应的是winpcap库版本。

首先呢,需要先在一个最新的libpcap源文件。我下载的是最新的版本是libpcap-1.2.0,然后解压到用户目录下。

在linux系统下,安装只需要三步:1. ./configure;2. make;3. make install。

在按照这三部安装的过程中遇到了两个问题,是安装过程中出现的错误。这些错误是因为没有对应的工具。我把错误和解决办法罗列如下,和大家一起分享:

第一步,配置过程中出现这样的一个错误:./configure:error:Your operating system's lex is insufficient to compile libpcap.意思就是你的操作系统的词法分析器(lex)不足以编译libpcap。有关这个lex的详细资料大家可以百度一下。然后我查阅了资料,解决办法是需要安装一个flex,sudo apt-get install flex回车。安装这个后就可以通过了,生成Makefile文件以及其他配置文件。

第二步,make编译过程中也遇到了一个错误:make:yacc: 命令未找到。yacc(Yet Another Compiler Compiler)是unix/linux上用来生成编译器的编译器(编译器代码生成器)。yacc生成的编译器使用C语言写成的语法解析器(Parser),需要与词法分析器lex一起使用,再把两部分产生出来的C程序一并编译。解决这个问题的办法是:安装bison,关于bison的详细资料,这儿不啰嗦了。sudo apt-get install bison。还要注意一个问题,在编译的时候可能有一些文件有权限要求,所以最好使用sudo make命令。

第三步,make install 安装。这一步倒没出现问题。不过也最好使用sudo make install 吧。

接下来就是使用这个libpcap库了。

 

在安装成功后,接下来在使用该库编译或者执行编译之后的可执行文件时,或许还会遇到如下的问题:

1. 编译时:比如,

gcc  packet.o  -lpcap -lpthread  /* -lpcap是用于调用libpcap库的,所以不要忘了添加上。*/
/usr/local/lib/libpcap.so: undefined reference to `pcap_parse’
collect2: ld returned 1 exit status

对于这样的错误信息,首先确认一下是否安装了libpcap-dev,如果没有可以先安装一下:sudo apt-get install libpcap-dev;我尝试了一下安装这个以后问题并没有解决,但是我不确定下面的方法是不是和这一步有关系,我是先尝试这个方案,最后不行。

然后下面的解决的办法确实让人很难想到:重新安装libpcap库。进入解压后的库目录里,首先make clean,然后再从新安装一遍:1. ./configure;2. make;3. make install;问题就解决了。这个解决方法很难让我们想到,具体是什么原因,还待研究。

2. 执行时:比如,

编译通过后生成可执行文件:a.out,然后再终端里执行:sudo ./a.out,出现如下错误信息:

error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory

解决办法是:将/usr/lib/libpcap.so库文件改一下名字,改成libpcap.so.1就可以了。当然也可以为libpcap.so.1建一个软连接:ln  -s /usr/lib/libpcap.so  /usr/lib/libpcap.so.1;这样问题就解决了。


apt-get install libpcap-dev

apt-get install libpcap-dev
  • LJL1603
  • LJL1603
  • 2010年01月16日 01:22
  • 1161

libpcap的使用一(pcap_lookupdev函数的使用)

首先要在Linux环境下安装libpcap.

"undefined reference to" 问题解决方法

最近在Linux下编程发现一个诡异的现象,就是在链接一个静态库的时候总是报错,类似下面这样的错误: (.text+0x13): undefined reference to `func'     ...

ubuntu 14.04安装libpcap

1, 环境: Ubuntu14.04 + libpcap-1.4.0.tar.gz 2,Libpcap下载: 官方地址-http://www.tcpdump.org/#latest-release ...

Ubuntu下libpcap安装步骤

第一步,先安装GCC ,一般都会自动安装 sudo apt-get install build-essential 第二步,GNU M4可以从此处 ftp.gnu.org/gnu/m4/ 下载 ...

关于ubuntu添加共享库路径

关于ubuntu添加共享库路径: 1. 将绝对路径写入 /etc/ld.so.conf  2. ldconfig OK!  ****************************...
  • r91987
  • r91987
  • 2011年10月16日 22:49
  • 3291

在ubuntu下安装libpcap库 (解决方案很全)

原文链接:http://blog.csdn.net/cfjtaishan/article/details/7096085 这两天公司里要我了解一下pcap,但是还不知道它是干什么的。...
  • akiyame
  • akiyame
  • 2014年11月26日 20:15
  • 3489

ubuntu libpcap安装

环境为Ubuntu10.10+libpcap-1.1.1.tar.gz 1、Libpcap下载   Libpcap的官方网站是http://tcpdump.org/release,可以从该网站下载...
  • mzlqh
  • mzlqh
  • 2012年05月31日 20:06
  • 2848

ubuntu 14.04安装libpcap

1, 环境: Ubuntu14.04 + libpcap-1.6.1.tar.gz 2,Libpcap下载: 官方地址-http://www.tcpdump.org/#latest-release ...

libpcap使用

libpcap使用 libpcap是一个网络数据包捕获函数库,功能非常强大,Linux下著名的tcpdump就是以它为基础的。今天我们利用它来完成一个我们自己的网络嗅探器(sniffer...
  • htttw
  • htttw
  • 2012年04月28日 18:34
  • 101928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:在ubuntu下安装libpcap库
举报原因:
原因补充:

(最多只允许输入30个字)