Chinaunix首页 | 论坛 | 博客
  • 博客访问: 761933
  • 博文数量: 790
  • 博客积分: 40560
  • 博客等级: 大将
  • 技术积分: 5065
  • 用 户 组: 普通用户
  • 注册时间: 2008-08-28 16:29
文章分类

全部博文(790)

文章存档

2011年(1)

2008年(789)

我的朋友

分类: LINUX

2008-08-28 17:24:11

 
通过官方提供的资料可以了解安装的基本环境:
Tocompilethelibpcaplibrary,yourUnixdistributionmusthaveaCcompiler,andthelexandbisontextparsers.ForOpenSourceUnixdistributionssuchasLinuxandFreeBSD,thegcc,flex,andbisonprogramsprovidethesefunctions.
安装Ubuntu操作系统后是没有安装Ccompiler、flex、bison

1.安装gcc编译器
直接在终端执行sudoapt-getinstallgcclibc6-dev安装gcc(需要系统光盘),要不然连helloworld这么简单的都编译不过,或者在编译tar.gz文件时提示“Ccompilercannotcreateexecutable”的错误。

编写helloworld测试gcc编译器:
#include
intmain(){
printf("hello,world!\n");
return0;
}

第一次接触gcc编译器,发现不支持voidmain()这种main函数的。

2.编译GNUM4(version1.4)
这个是编译flex必备的环境,否则会提示“GNUM41.4isrequired”的错误

3.编译flex(version2.5.33)
没有flex,直接安装libpcap会提示“Youroperatingsystem''slexisinsufficienttocompilelibpcap”错误。

4.编译bison(version2.3)
在安装flex后直接安装libpcap会提示“don''thavebothflexandbison;revertingtolex/yacc”错误,前面安装的是flex,就需要搭配bison

5.编译libpcap
全面四步完成后,就可以使用下面三个指令安装libpcap环境:
./configure
make
makeinstall

简单的例子测试一下libpcap:
//device.c
#include
intmain(intargc,char*argv[]){
char*dev,errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL){
fprintf(stderr,"couldn''tfinddefaultdevice:%s\n",errbuf);
return(2);
}
printf("Device:%s\n",dev);
return(0);
}

编译指令:gcc-odevicedevice.c-lpcap

备注:编译时要使用libpcap的参数-lpca,否则会提示“pcap_lookupdev未定义的引用”的错误。

运行指令:./device

6.总结
就这么简单的几个步骤,我花了一天的时间才弄出来的,跑到国外查阅了很多资料,国内几乎找不到这方面的资料,主要原因其一是使用Ubuntu的人很少,而使用Redhat的直接安装就可以,本身系统不会缺少flex、bison;其二是我不熟悉在linux平台安装程序,不象windows平台点几下鼠标就可以安装的,还有flex、bison很难才找到提供下载的地方,也是在国外。

备注:
1)出现“无法创建一般文件''/usr/local/bin/m4'':Permissiondenied”错误,权限问题,Ubuntu默认root用户不启用的,可以使用sudo指令解决这个问题。

2)Ubuntu不支持rpm安装文件,rpm是RedHat操作系统的标准安装文件格式,可以采用alien将rpm包转换为deb包。
安装alien:sudoapt-getinstallalien
alien使用:alien****.rpm
这样就生成Ubuntu支持的****.deb
安装deb:sudodpkg-i****.deb
或者右键菜单,安装deb

阅读(656) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~