Chinaunix首页 | 论坛 | 博客
  • 博客访问: 542098
  • 博文数量: 102
  • 博客积分: 3165
  • 博客等级: 中校
  • 技术积分: 1232
  • 用 户 组: 普通用户
  • 注册时间: 2009-05-09 16:38
文章存档

2016年(1)

2013年(14)

2012年(6)

2011年(22)

2010年(57)

2009年(2)

我的朋友

分类: LINUX

2011-02-14 11:11:14

在linux下搭建libcap开发环境:
操作系统版本kubuntu 10.04
linux,内核版本2.6.32-22-generic
gcc版本:gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
libcap版本:libcap1.1.1 下载地址
 
1.安装gcc g++编译器 直接在终端执行sudo apt-get install build-essential
C 语言经典的入门例子是 *Hello World,下面是一示例代码:
#include
  int main(void)
{
printf("Hello, world!\n");
return 0;
}
我们假定该代码存为文件‘hello.c’。
要用 编译该文件,使用下面的命令: $ gcc -Wall hello.c -o hello
该命令将文件‘hello.c’中的代码编译为机器码并存储在可执行文件 ‘hello’中。
机器码的文件名是通过 选项指定的。该选项通常作为命令行中的最後一个参数。如果被省略,输出文件默认为 ‘a.out’。 如果当前目录中与可执行文件重名的文件已经存在,它将被复盖。 选项 开启编译器几乎所有常用的警告──。 编译器有很多其他的警告选项,但 是最常用的。默认情况下GCC 不会产生任何警告信息。当编写 C 或 C++ 程序时编译器警告非常有助于检测程序存在的问题。 本例中,编译器使用了 选项而没产生任何警告,因为示例程序是完全合法的。
要运行该程序,输入可执行文件的路径如下: $ ./hello Hello, world!
这将可执行文件载入内存,并使 CPU 开始执行其包含的指令。 路径 指代当前目录,因此 载入并执行当前目录下的可执行文件 ‘hello’。

2.安装GNU M4 sudo apt-get install m4
这个是编译flex必备的环境,否则会提示“GNU M4 1.4 is required”的错误

3. 安装flex sudo apt-get install flex
没有flex,直接安装libpcap会提示“Your operating system's lex is insufficient to compile libpcap”错误。

4.编译bison sudo apt-get install bison
在安装flex后直接安装libpcap会提示“don't have both flex and bison;reverting to lex/yacc”错误,前面安装的是flex,就需要搭配bison

5.编译libpcap
全面四步完成后,就可以使用下面三个指令安装libpcap环境: 切换到libpcap目录下(具体可查看libcap目  录下官方提供的install文档)
./configure
make
sudo make install

6. 运行 ldconfig,至此完成。
简单的例子测试一下libpcap:
//device.c
#include
int main(int argc,char *argv[])
{
char *dev,
errbuf[PCAP_ERRBUF_SIZE];
dev=pcap_lookupdev(errbuf);
if(dev==NULL)
{
printf(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的参数 -lpcap,否则会提示“pcap_lookupdev 未定义的引用”的错误。
运行指令:./device
 
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/funnel_web_spider/archive/2010/05/15/5594478.aspx
阅读(7964) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~