交叉编译tcpdump

一、准备工作

  1. 源代码git地址

    # tcpdump依赖libpcap
    https://github.com/the-tcpdump-group/libpcap.git
    # tcpdump源码
    https://github.com/the-tcpdump-group/tcpdump.git
    
  2. 交叉编译工具链

    安装需要的交叉编译链工具。

  3. 配置编译环境

    # 开发服务器上这条已经配置好了,跳过
    $ export PATH=/opt/linaro-14.04/gcc-linaro-arm-linux-gnueabihf-4.8/bin/:$PATH
    # 临时修改环境变量, CC=需要的交叉编译器
    $ export CC=arm-linux-gnueabihf-gcc
    

    【注】开发服务器已经做好配置,明确编译工具链即可

二、编译libpcap

tcpdump依赖libpcap,首先编译、安装libpcap

# 在libpcap的项目根目录下,执行以下命令
# --host 为目标平台,与编译器前缀相同
$ ./configure --prefix=$PWD/install --host=arm-linux-gnueabihf --with-pcap=linux
# 如果不是第一次编译,需要执行
$ make clean
# 编译
$ make
$ make install

三、编译tcpdump

# 在tcpdump的项目根目录下,执行以下命令
$ ./configure --host=arm-linux-gnueabihf    # --host,同上
# 如果不是第一次编译,需要执行
# make clean
$ make

四 、编译结果

tcpdump项目根目录下,有编译结果文件tcpdump

$ ll tcpdump
-rwxrwxr-x 1 aoniu aoniu 4812148 3月  22 13:35 tcpdump
$ ls
aclocal.m4                       print-802_15_4.o   print-ipcomp.o        print-rpki-rtr.c
addrtoname.c                     print-ah.c         print-ip-demux.c      print-rpki-rtr.o
addrtoname.h                     print-ahcp.c       print-ip-demux.o      print-rsvp.c
addrtoname.o                     print-ahcp.o       print-ipfc.c          print-rsvp.o
addrtostr.c                      print-ah.o         print-ipfc.o          print-rt6.c
addrtostr.h                      print-aodv.c       print-ipnet.c         print-rt6.o
addrtostr.o                      print-aodv.o       print-ipnet.o         print-rtsp.c
af.c                             print-aoe.c        print-ip.o            print-rtsp.o
......
posted @ 2022-10-17 20:10  ZhenNA  阅读(764)  评论(0编辑  收藏  举报