本文主要记录tcpdump,一个linux平台的抓包工具在arm平台上的编译方法,不涉及其使用。
下载tcpdump工具,地址:http://www.tcpdump.org/
需要下载2个压缩包:
libpcap-1.4.0.tar.gz
tcpdump-4.4.0.tar.gz
一、编译libpcap(如flex、bison等必要工具,不列举出来)
1、配置
1 | $ ./configure --prefix=/home/latelee/bin/tcpdumptools/libpcap --host=arm-linux CC=arm-arago-linux-gnueabi-gcc |
configure出错,信息如下:
1 | configure: error: pcap type not determined when cross-compiling; use --with-pcap=... |
解决方法:找到configure文件,注释如下内容:
1 | # comment by latelee |
继续用上述的configure配置,无问题。
2、编译安装
1 | $ make;make install |
得到的库的头文件及库在/home/latelee/bin/tcpdumptools/libpcap中,编译tcpdump要使用到。
二、编译tcpdump
1、配置
配置有2种方式,建议使用第1种,省事很多。
1 | // 使用静态库,无须libpcap动态库。 |
同样,configure会出错,如下:
1 | configure: error: cannot determine linux version when cross-compiling |
解决方法:修改configure文件,注释如下内容:
1 | # comment by latelee |
继续用上述的configure配置,无问题。
2、编译安装
1 | $ make;make install |
得到的tcpdump工具在tcpdumptools/tcpdump/sbin目录下。
附:
1、交叉编译这么多的工具,第一次遇到在configure这一步出错的情况,不知是自己在使用上出问题,还是其本身的问题。无论如何,终归是可以正常编译通过了。
2、如有人参考本文,请务必将路径及交叉编译器修改成自己的。