`
tcspecial
  • 浏览: 911886 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

libpcap 交叉编译

阅读更多

本文研究在openwrt的路由器(基于ARM架构)上用libpcap采集数据包。

 

一. 安装ARM交叉编译环境

下载openwrt源码,编译时勾取 Build OpenWrt Toolchain。编译过程参见:http://tcspecial.iteye.com/blog/2280873 

 

二. 下载源码

libpcap只有同一套源码,支持嵌入式编译,没有单独的嵌入式版本。

wget http://www.tcpdump.org/release/libpcap-1.4.0.tar.gz
tar -xzvf libpcap-1.4.0.tar.gz 
cd libpcap-1.4.0

 

三. 编译libpcap

3.1 设置交叉编译环境

因为libpcap是运行在路由器上的,因此要用arm-openwrt-linux-gcc 工具来编译。

#armenv.sh
Workdir=~/openwrt-arm
export STAGING_DIR=${Workdir}/bin
export PATH=${Workdir}/bin:$PATH
 
export CROSS_COMPILE=arm-openwrt-linux-
export CROSS_PREFIX=arm-openwrt-linux-
export CC=${CROSS_PREFIX}gcc
export STRIP=${CROSS_PREFIX}strip
export AR=${CROSS_PREFIX}ar
export RANLIB=${CROSS_PREFIX}ranlib
export OBJCOPY=${CROSS_PREFIX}objcopy

  

source ~/mipsenv.sh 
./configure --prefix=/home/ubuntu/libpcap-arm --host=arm-openwrt-linux

    注:MIPS平台,指定 --host=mips-openwrt-linux

 

出错提示:

configure: error: pcap type not determined when cross-compiling; use --with-pcap=...

 

方法一:添加--with-pcap参数,指定采集类型

./configure --prefix=/home/ubuntu/libpcap-arm --host=arm-openwrt-linux --with-pcap=linux

  

方法二:注释该段代码

Line 7210

vi configure

#if test -z "$with_pcap" && test "$cross_compiling" = yes; then
#       { { echo "$as_me:$LINENO: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&5
#echo "$as_me: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&2;}
  { (exit 1); exit 1; }; }
#fi

  

make && make install 

 

四. 测试

 

 

  • 大小: 15.2 KB
分享到:
评论

相关推荐

    libpcap交叉编译

    libpcap交叉编译 libpcap是一种流行的网络嗅探器库,它提供了一个跨平台的接口来捕获和分析网络流量。下面是关于libpcap交叉编译的知识点: 交叉编译环境配置 在开始编译libpcap之前,需要首先配置交叉编译环境。...

    ARM平台的ppp-2.4.4交叉编译.doc

    完成交叉编译后,确保动态链接库(如libpcap.so)和对应的头文件(如pcap.h)已经正确放置。动态链接库应放在系统的动态库路径下,比如/lib或/usr/lib,而头文件则应放在/usr/local/include或其他包含路径中。 **...

    交叉编译ppp for arm.doc

    ### 交叉编译PPP for ARM 知识点详解 #### 一、交叉编译环境配置与工具选择 在进行交叉编译之前,首先需要确保具备一个稳定的开发环境。本案例中,开发人员选择了**Ubuntu 9.04**作为宿主机操作系统,并使用了**...

    iftop-arm平台编译.txt

    在ARM架构上编译iftop涉及到交叉编译环境的搭建以及对依赖库如libpcap和ncurses的编译。 #### 二、准备工作 在开始编译之前,确保已经完成以下步骤: 1. **准备开发环境**:确保您的开发环境已经安装了必要的...

    AT91RM9200开发笔记(10):PPPD-2.4.3交叉编译

    - **依赖库**:确保所有必要的库(如libpcap、openssl等)都已为AT91RM9200进行了交叉编译并可用。 - **配置文件**:根据你的具体需求,可能需要创建或修改PPPD的配置文件(如`pppd.conf`)。 - **设备驱动**:确保...

    tcpdump/libpcap源码

    交叉编译指南.txt文件则可能包含了一套详细的过程,指导用户如何在不同的硬件平台或操作系统上编译tcpdump和libpcap。交叉编译是将软件编译为运行在不同架构上的目标代码的过程,这对于在嵌入式系统或资源有限的环境...

    snort-2.9.0.5+daq+libdnet+libpcap+pcre

    这个压缩包包含了Snort 2.9.0.5的源代码,以及与其配合使用的几个关键库,包括DAQ(Data Acquisition)、libdnet、libpcap和pcre。 1. Snort 2.9.0.5: 这是Snort的一个版本,它能够通过解析网络流量来识别已知的...

    compile-tcpdump.tar.gz

    标题中的"compile-tcpdump.tar.gz"是一个压缩文件,它包含了一个用于交叉编译tcpdump的脚本和源代码。tcpdump是一款强大的网络封包分析软件,常被用来捕获和分析网络流量,帮助网络管理员监控、调试和解决网络问题。...

    UbuntuLinux编译出能运行在DD、Tomato下的软件借鉴.pdf

    首先,需要安装增强工具和交叉编译工具,并将其解压缩到对应的目录中。然后,需要安装一些必要的工具,例如 bison、flex 和 build-essential。 接下来,需要下载 libpcap 源码,并将其解压缩到 cross 目录中。然后...

    libpcap_1.0.0-2_ar71xx.ipk

    libpcap_1.0.0-2_ar71xx.ipk 你使用路由器进行交叉编译和上网时候,使用mentohust需要用的的库

    libpcap6410网络数据原始数据包

    libcap6410交叉编译测试代码可以获取当前完整数据包..相关资料可以到本人博客查看.

    UbuntuLinux编译出能运行在DD、Tomato下的软件收集.pdf

    - 解压源码至`cross`目录,修改Makefile以适应交叉编译,指定`CC`为`mipsel-linux-uclibc-g++`,并添加相应的编译标志和静态链接libpcap。 8. **Makefile修改**: - 更改Makefile的目标和规则,使其使用交叉...

    libpcap1_1.9.1-2_mips_24kc.ipk

    已经交叉编译好的libpcap的ipk包,适用于OpenWrt路由器。 Package architecture:mips_24kc,自己在Target:ar71xx-ath79,Device:Netgear WNDR3700v2(WNDR3800)上测试通过,其他类似路由器硬件应该也可以使用。 ...

    UbuntuLinux编译出能运行在DD、Tomato下的软件.pdf

    然后,从DD-WRT官方网站下载交叉编译工具`toolchains.x86.debian.sp1.tar.bz2`,解压并将其中的`4.1.0-uclibc-0.9.28`移动到`tools`目录,并重命名为`dd`。这个工具编译的程序可以在Tomato和DD-WRT上运行。 为了...

    UbuntuLinux编译出能运行在DD、Tomato下的软件[归纳].pdf

    这涉及到交叉编译技术,即在一种架构上编译出适用于另一种架构的软件。以下是详细步骤和知识点: 首先,你需要一个Ubuntu Linux环境,这里建议在Vista系统上的VirtualBox中安装。安装完成后,创建几个关键目录,如`...

    Beaglebone Cross complie code demo

    《Beaglebone交叉编译代码演示》 在嵌入式系统开发中,交叉编译是一项重要的技术,它允许我们在宿主机(通常是PC或Linux系统)上为目标平台(如Beaglebone)构建软件。Beaglebone是一款基于ARM架构的开源硬件开发板...

    海思平台tcpdump

    海思arm-hisiv300-linux- 交叉编译 tcpdump libpcap-1.8.1.tar.gz tcpdump-4.9.0 tcpdump-4.9.0.tar.gz 字数补丁

    pppd + chat arm 自动编译包

    交叉编译是为不同架构的目标平台编译软件的过程,对于ARM设备,我们需要安装对应的交叉编译工具链,例如arm-linux-gnueabi-gcc。确保工具链安装无误后,可以开始下载pppd和chat的源代码。通常,你可以通过访问它们的...

    gxgk-zte:[DEPRECATED]旧版莞香客户端源码,加linux版本

    gxgk-zte ...老的客户端源代码搬迁 yzx老师把源代码寄放在Google代码上,但是Google代码大部分人已经访问不了了,我就把其搬迁到... 编译方法之一:下载openwrt并编译或用sdk,利用openwrt的gcc交叉编译(设置环境变量)

    tcpdump源码(tcpdump-4.99.4.tar.gz)生成tcpdump

    tcpdump源码编译,需要多个部件的源码进行顺序编译而成。...libpcap-1.10.4.tar.gz tcpdump-4.99.4.tar.gz tar xvf *.tar解压后,分别执行./configure 和make install(root执行),即可编译和安装好tcpdump

Global site tag (gtag.js) - Google Analytics