tcpdump 移植

tcpdump 移植

1、下载 libpcap-1.0.0.tar.gz 和 tcpdump-4.0.0.tar.gz URL:http://www.tcpdump.org/
2、解压 执行如下命令:tar -zxvf libpcap-1.0.0.tar.gz 和 tar -zxvf tcpdump-4.0.0.tar.gz 使他们都在一个目录
3、进入libpcap-1.0.0目录 执行命令:
./configure --build=i686 --host=arm-linux CC=/opt/buildroot_350/build_arm/staging_dir/bin/arm-linux-uclibc-gcc

如果出现错误:configure: error: pcap type not determined when cross-compiling; use --with-pcap=...和
                          configure: error: cannot determine linux version when cross-compiling
没有找到其他方法解决,所以采用暴力手段,修改configure文件,注释掉如下代码:
#if test -z "$with_pcap" && test "$cross_compiling" = yes; then
#       { { echo "$as_me:$LINENO: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&5
#echo "$as_me: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&2;}
#   { (exit 1); exit 1; }; }
#fi
.
.
.
#       if test $ac_cv_linux_vers = unknown ; then
#               { { echo "$as_me:$LINENO: error: cannot determine linux version when cross-compiling" >&5
#echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
#   { (exit 1); exit 1; }; }
#       fi
最后执行了
./configure --build=i686 --host=arm-linux CC=/opt/buildroot_350/build_arm/staging_dir/bin/arm-linux-uclibc-gcc
就会生成Makefile了!!!!!!!
4、执行make
5、生成libpcap.a库文件
6、进入tcpdump-4.0.0目录
7、执行命令:
./configure --build=i686 --host=arm-linux CC=/opt/buildroot_350/build_arm/staging_dir/bin/arm-linux-uclibc-gcc --disable-ipv6 --disable-smb
8、出现错误:configure: error: cannot determine linux version when cross-compiling
再次暴力修改configure文件,屏蔽如下代码:
#       if test $ac_cv_linux_vers = unknown ; then
#               { { echo "$as_me:$LINENO: error: cannot determine linux version when cross-compiling" >&5
#echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
#   { (exit 1); exit 1; }; }
#       fi
9、编译生成Makefile
10、如果直接make的话会出现如下错误:error: invalid 'asm': invalid operand for code 'w'
11、修改Makefile文件:vi Makefile
将:
INCLS = -I. -I./../libpcap-1.0.0 -I/usr/include -I$(srcdir)/missing
DEFS = -DHAVE_CONFIG_H -I./../libpcap-1.0.0 -I/usr/include -I$(srcdir)/missing -D_U_="__attribute__((unused))"
改为:
INCLS = -I. -I./../libpcap-1.0.0 -I/opt/buildroot_350/build_arm/staging_dir/include -I$(srcdir)/missing
DEFS = -DHAVE_CONFIG_H -I./../libpcap-1.0.0 -I/opt/buildroot_350/build_arm/staging_dir/include -I$(srcdir)/missing -D_U_="__attribute__((unused))"
主要是将include的路径指定为我们自己的交叉编译的include库路径。
12、执行make 会出现错误:undefined reference to `ip6_print
此时可以再次来点暴力,修改源码!!!:vi print-enc.c
屏蔽如下代码://case AF_INET6:
     //ip6_print(p, length);
     //break;
13、最后再次执行make   OK了   生成tcpdump了    哈哈哈哈哈   你可以拿它到板子上面跑了.......

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值