交叉编译tcpdump

发布时间 2023-07-14 17:07:49作者: 打上花火✿

交叉编译tcpdump,在树莓派上抓包,用户层交叉编译比较简单。交叉编译器有很多,我们本次采用linaro(http://releases.linaro.org)交叉编译工具。

系统版本:centos7
编译工具:arm-linux-gnueabi

wget http://releases.linaro.org/components/toolchain/binaries/4.9-2017.01/arm-linux-gnueabi/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz
wget http://www.tcpdump.org/release/libpcap-1.8.1.tar.gz
wget http://www.tcpdump.org/release/tcpdump-4.9.1.tar.gz

1、下载好之后进行解压到任意目录

tar -xvf gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi.tar.xz
tar -zxvf libpcap-1.10.3.tar.gz
tar -zxvf tcpdump-4.99.3.tar.gz

2、进入到编译工具的bin目录后,执行./arm-linux-gnueabi-gcc -v 查看版本信息。
image.png
3、配置编译器环境变量
vim /etc/profile

export ARCH=arm 
export CROSS_COMPILE=arm-linux-gnueabihf- export 
PATH=$PATH:/root/tcpdump/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabi/bin

source ~/.bashrc
4、编译libpcap和tcpdump
libpcap

tar -zxvf libpcap-1.10.1.tar.gz
cd libpcap-1.10.1/
../configure CC=arm-linux-gnueabihf-gcc --host=arm-linux --prefix=/root/tcpdump/install
make
make install

image.png
tcpdump

tar -zxvf tcpdump-4.99.1.tar.gz
cd tcpdump-4.99.1/
./configure CC=arm-linux-gnueabihf-gcc --host=arm-linux --prefix=/root/tcpdump/install
make
make install

image.png
ps:这里需要说明的是CC参数指定了交叉编译器, 编译两者时需要指定相同的目录, 否则在编译tcpdump时需要指定libpcap的路径。
5、在安装目录下找到arm架构的tcpdump,结果如下
image.png