通过官方提供的资料可以了解安装的基本环境: To compile the libpcap library, your Unix distribution must have a C compiler, and the lex and bison text parsers. For Open Source Unix distributions such as Linux and FreeBSD, the gcc, flex, and bison programs provide these functions. 安装Ubuntu操作系统后是没有安装C compiler、flex、bison 文章所用到源文件下载地址:http://www.liuzhigong.com/download/libpcap_install_all.rar 1.安装gcc编译器 直接在终端执行sudo apt-get install gcc libc6-dev 安装gcc(需要系统光盘),要不然连helloworld这么简单的都编译不过,或者在编译tar.gz文件时提示“C compiler cannot create executable”的错误。 编写helloworld测试gcc编译器: #include<stdio.h> int main(){ printf("hello,world!\n"); return 0; } 2.编译GNU M4 (version 1.4) 这个是编译flex必备的环境,否则会提示“GNU M4 1.4 is required”的错误 3.编译flex(version 2.5.33) 没有flex,直接安装libpcap会提示“Your operating system's lex is insufficient to compile libpcap”错误。 4.编译bison(version 2.3) 在安装flex后直接安装libpcap会提示“don't have both flex and bison;reverting to lex/yacc”错误,前面安装的是flex,就需要搭配bison 5.编译libpcap 全面四步完成后,就可以使用下面三个指令安装libpcap环境: ./configure make make install 简单的例子测试一下libpcap: //device.c #include int main(int argc,char *argv[]){ char *dev, errbuf[PCAP_ERRBUF_SIZE]; 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 device device.c -lpcap 备注:编译时要使用libpcap的参数-lpca,否则会提示“pcap_lookupdev 未定义的引用”的错误。 运行指令:./device 6.总结 就这么简单的几个步骤,我花了一天的时间才弄出来的,跑到国外查阅了很多资料,国内几乎找不到这方面的资料,主要原因其一是使用Ubuntu的人很少,而 使用Redhat的直接安装就可以,本身系统不会缺少flex、bison;其二是我不熟悉在linux平台安装程序,不象windows平台点几下鼠标 就可以安装的,还有flex、bison很难才找到提供下载的地方,也是在国外。 备注: 1)出现“无法创建一般文件 '/usr/local/bin/m4':Permission denied”错误,权限问题,Ubuntu默认root用户不启用的,可以使用sudo指令解决这个问题。 2)Ubuntu不支持rpm安装文件,rpm是Red Hat操作系统的标准安装文件格式,可以采用alien将rpm包转换为deb包。 安装alien:sudo apt-get install alien alien使用:alien ****.rpm 这样就生成Ubuntu支持的****.deb 安装deb:sudo dpkg -i ****.deb 或者右键菜单,安装deb -- 人人都在进步,我们没有理由停止不前! |
网易VIP邮箱 |
评论