交叉编译tcpdump ,让其可以在mips环境下运行

交叉编译tcpdump ,让其可以在mips环境下运行

 

1.有交叉编译环境。

   这个主要是用到了mips-linux-cc,mips-linux-ar , mips-linux-ld 这三个交叉编译的工具,如果没有就去网上下一个,我是用的我们公司的SDK的toolchain。将它加到系统环境变量中:

export PATH=/usr/mips-toolchain-9331/build/gcc-4.3.3/build_mips/staging_dir/usr/bin:$PATH

2.到tcpdump官方网站上抓取最新的 libpcap-1.2.1.tar.gz  ,tcpdump-4.1.1.tar.gz ,放到同一个目录下。

3.首先编译libpcap-1.2.1.tar.gz,这个是tcpdump 用到的一些库。解压libpcap-1.2.1.tar.gz
首先改configure中 ac_cv_linux_vers的值,这个是我们要跑的 mips linux的版本。将unknow改成2.6.15 (我的是2.6.15,这个要根据mips linux来改)

./configure --host=mips-linux  --with-pcap=linux

这一步我们要指定用的地方是mips linux。

make

 file libpcap.a

查看编译出来的库文件

4. 到tcpdump-4.1.1目录中,我们开始编译tcpdump

首先改configure中 ac_cv_linux_vers的值,这个是我们要跑的 mips linux的版本。将unknow改成2.6.15 (我的是2.6.15,这个要根据mips linux来改)

之后

./configure --host=mips-linux

修改makefile
头文件包含有问题,包含到/usr/include目录下了,正常是要使用交叉编译环境的include

把INCLS里的 /usr/include替换为对应交叉编译的include,把DEFS的/usr/include去掉
INCLS = -I. -I./../libpcap-1.1.1  -I/usr/local/mips/4.3.3/build/gcc-4.3.3/build_mips/staging_dir/usr/lib/gcc/mips-linux-uclibc/4.3.3/include -I$(srcdir)/missing
DEFS = -DHAVE_CONFIG_H  -I./../libpcap-1.1.1  -I$(srcdir)/missing  -D_U_="__attribute__((unused))"

make

如果正确的话在目录中我们会到的tcpdump的二进制文件

5. 之后用tftp 下载到开发板上,就可以抓包了。

你可能感兴趣的:(交叉编译tcpdump ,让其可以在mips环境下运行)