码迷,mamicode.com
首页 > 其他好文 > 详细

交叉编译tcpdump

时间:2016-01-31 13:31:06      阅读:284      评论:0      收藏:0      [点我收藏+]

标签:

原创文章,转载请正确注明本文原始URL及作者;违反要求者猪狗不如。

交叉编译S2版本的tcpdump的过程,部分不重要的输出在此省略了。
我们是在虚拟机中来交叉编译的。

tcpdump是依赖于pcap包的,把下载好的两个源码包放在这个新建的目录下
ubuntu@localhost:/tmp/my$ ls
libpcap-1.7.4.tar.gz  tcpdump-4.7.4.tar.gz

解压这两个源码包
ubuntu@localhost:/tmp/my$ tar -xvf libpcap-1.7.4.tar.gz
ubuntu@localhost:/tmp/my$ tar -xvf tcpdump-4.7.4.tar.gz

解压完以后多了两个目录,如下
ubuntu@localhost:/tmp/my$ ls
libpcap-1.7.4  libpcap-1.7.4.tar.gz  tcpdump-4.7.4  tcpdump-4.7.4.tar.gz

先编译pcap库。
进入带目录中
ubuntu@localhost:/tmp/my$ cd libpcap-1.7.4/

因为S2的交叉编译链不再系统默认目录,所以这里把编译链的目录添加的PATH的最前面,这样编译的时候就能够找到正确的轿车编译链了。
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ export PATH=/usr/local/linaro-multilib-2014.06-gcc4.9/bin:"$PATH"

再导出一个CC环境变量,指定编译器名称(有时候指定好编译链的目录,就不用这个了)
看了一下源码全部是C代码,所以只用指定C编译器就行了。
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ export CC=arm-linux-gnueabihf-gcc

执行configure,指定如下参数
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ ./configure --host=arm-linux-gnueabihf
......
configure: error: pcap type not determined when cross-compiling; use --with-pcap=...
上面报了一个错,上网查了一下,这个错关系,修改configure脚本让它不要检查这项了。

ubuntu@localhost:/tmp/my/libpcap-1.7.4$ vi configure
搜索到报错的那句话,注掉相关的if判断就行了。

再次执行configure,这次终于通过了
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ ./configure --host=arm-linux-gnueabihf

执行make,进行正式编译
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ make

看一下编译出来的库,静态库和动态库都生成了
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ find -name "libpcap.*"
./libpcap.a
./libpcap.so.1.7.4


现在可以开始编译tcpdump了,先进入到目录中
ubuntu@localhost:/tmp/my/libpcap-1.7.4$ cd /tmp/my/tcpdump-4.7.4/

执行configure,依旧指定如下参数
ubuntu@localhost:/tmp/my/tcpdump-4.7.4$ ./configure --host=arm-linux-gnueabihf
......
checking for local pcap library... ../libpcap-1.7.4/libpcap.a
它自动的找到了刚才编译出来的pcap库,而且是静态库,这样将来生成的tcpdump就是单个文件,方便使用。

执行make,正式编译
ubuntu@localhost:/tmp/my/tcpdump-4.7.4$ make

看已经生成了,编译成功了。
ubuntu@localhost:/tmp/my/tcpdump-4.7.4$ ls tcpdump
tcpdump           tcpdump.1.in      tcpdump.o         

现在把他直接拷贝到S2相机上,可以用了,哈哈!

 

原创文章,转载请正确注明本文原始URL及作者;违反要求者猪狗不如。

交叉编译tcpdump

标签:

原文地址:http://www.cnblogs.com/zhaojk2010/p/5173049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!