交叉编译tcpdump
一、准备工作
-
源代码git地址
# tcpdump依赖libpcap https://github.com/the-tcpdump-group/libpcap.git # tcpdump源码 https://github.com/the-tcpdump-group/tcpdump.git
-
交叉编译工具链
安装需要的交叉编译链工具。
-
配置编译环境
# 开发服务器上这条已经配置好了,跳过 $ 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
......