Ubuntu下安装Libpcap
Libpcap是 Unix/Linux 平台下的网络数据捕获函数包,百度百科是这么说的,唉,不管什么来头,只要帮我完成作业就行,安装过程记录如下:
还是那个套路,先在网上搜了一把,大概也就那样,被疯狂转载的方法。首先安装gcc编译器,这个早就装好了,然后由于Libpcap有一些依赖包,所以在安装Libpacap之前还得依次安装GNU M4,bison和flex。M4和bison的下载地址:http://ftp.gnu.org/gnu/。flex的下载地址:http://flex.sourceforge.net/。下载目前最新的版本:m4-1.4.15 ,bison-2.4.3 ,flex-2.5.35 和 libpcap-1.1.1。
把下载的这几个安装包解压缩到同一个目录,终端下用root身份依次进入上述4个文件夹。分别执行如下命令编译安装:
./configure
make
make install
好了,顺利安完之后,编写测试代码 test.c 如下(也是Copy的):
#include<stdio.h>
int main()
{
char *dev, errbuf[1024];
dev=pcap_lookupdev(errbuf);
if(dev==NULL){
fprintf(stderr,"couldn't find default device: %s\n",errbuf);
return(2);
}
printf("Device: %s\n",dev);
return(0);
}
好了,编译这段代码: gcc -o test test.c -lpcap
执行: 执行的时候也因该以root身份 sudo su 输入密码
./test 执行生成的可执行文件test。好了,问题来了,提示:
error while loading shared libraries: libpcap.so.1: cannot open shared object file: No such file or directory
在这里卡了很久,在http://opensource.ask4itsolutions.com/forums/vglug-vibrant-gnulinux-user-group/libpcapso1-not-found 这里才找到了解决方法。
在/usr/local/lib目录下, libpcap.so.1文件就躺在这里,为什么找不到呢。
解决方法:打开 /etc目录下的文件ld.so.conf ,添加两行
/usr/local/lib
/usr/lib
然后在终端下执行从新加载配置的命令:
ldconfig
好了,再编译运行test.c成功输出结果:
Device: eth0
如果不以root身份执行,将会输出:
couldn't find default device: no suitable device found
最新文章
- Java学习之LinkedHashMap学习总结
- C#命名规则和编码规范
- java3
- VS2013菜单栏文字全大写的问题
- Excel导入数据库脚本
- CentOS 6.5 搭建 LAMP 环境
- WinRT知识积累2之MessageDialog应用代码
- [golang]反射的用处--代码自动生成
- 如何利用java得到当前的时间和前一天的时间
- ios auto layout demystified (一)
- BZOJ4155 : [Ipsc2015]Humble Captains
- 【英语】Bingo口语笔记(23) - 万圣节系列
- RabbitMQ队列
- windows驱动程序wdf--KMDF大致框架
- Saltstack_使用指南06_远程执行-指定目标
- 【Java】-NO.16.EBook.4.Java.1.011-【疯狂Java讲义第3版 李刚】- AWT
- ASP.NET Page执行顺序如:OnPreInit()、OnInit()
- delphi xe---intraweb基本介绍
- vue中的config配置
- hdoj--4325--Flowers(线段树+二分)