交叉编译tcpdump
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了交叉编译tcpdump相关的知识,希望对你有一定的参考价值。
原创文章,转载请正确注明本文原始URL及作者;违反要求者猪狗不如。
交叉编译S2版本的tcpdump的过程,部分不重要的输出在此省略了。
我们是在虚拟机中来交叉编译的。
tcpdump是依赖于pcap包的,把下载好的两个源码包放在这个新建的目录下 [email protected]:/tmp/my$ ls libpcap-1.7.4.tar.gz tcpdump-4.7.4.tar.gz 解压这两个源码包 [email protected]:/tmp/my$ tar -xvf libpcap-1.7.4.tar.gz [email protected]:/tmp/my$ tar -xvf tcpdump-4.7.4.tar.gz 解压完以后多了两个目录,如下 [email protected]:/tmp/my$ ls libpcap-1.7.4 libpcap-1.7.4.tar.gz tcpdump-4.7.4 tcpdump-4.7.4.tar.gz 先编译pcap库。 进入带目录中 [email protected]:/tmp/my$ cd libpcap-1.7.4/ 因为S2的交叉编译链不再系统默认目录,所以这里把编译链的目录添加的PATH的最前面,这样编译的时候就能够找到正确的轿车编译链了。 [email protected]:/tmp/my/libpcap-1.7.4$ export PATH=/usr/local/linaro-multilib-2014.06-gcc4.9/bin:"$PATH" 再导出一个CC环境变量,指定编译器名称(有时候指定好编译链的目录,就不用这个了) 看了一下源码全部是C代码,所以只用指定C编译器就行了。 [email protected]:/tmp/my/libpcap-1.7.4$ export CC=arm-linux-gnueabihf-gcc 执行configure,指定如下参数 [email protected]:/tmp/my/libpcap-1.7.4$ ./configure --host=arm-linux-gnueabihf ...... configure: error: pcap type not determined when cross-compiling; use --with-pcap=... 上面报了一个错,上网查了一下,这个错关系,修改configure脚本让它不要检查这项了。 [email protected]:/tmp/my/libpcap-1.7.4$ vi configure 搜索到报错的那句话,注掉相关的if判断就行了。 再次执行configure,这次终于通过了 [email protected]:/tmp/my/libpcap-1.7.4$ ./configure --host=arm-linux-gnueabihf 执行make,进行正式编译 [email protected]:/tmp/my/libpcap-1.7.4$ make 看一下编译出来的库,静态库和动态库都生成了 [email protected]:/tmp/my/libpcap-1.7.4$ find -name "libpcap.*" ./libpcap.a ./libpcap.so.1.7.4 现在可以开始编译tcpdump了,先进入到目录中 [email protected]:/tmp/my/libpcap-1.7.4$ cd /tmp/my/tcpdump-4.7.4/ 执行configure,依旧指定如下参数 [email protected]:/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,正式编译 [email protected]:/tmp/my/tcpdump-4.7.4$ make 看已经生成了,编译成功了。 [email protected]:/tmp/my/tcpdump-4.7.4$ ls tcpdump tcpdump tcpdump.1.in tcpdump.o 现在把他直接拷贝到S2相机上,可以用了,哈哈!
原创文章,转载请正确注明本文原始URL及作者;违反要求者猪狗不如。
以上是关于交叉编译tcpdump的主要内容,如果未能解决你的问题,请参考以下文章