《开发板 —— 移植tcpdump 交叉编译 带有依赖库如何移植》
1.下载源码
由于tcpdump依赖于libpcap,所以需要先下载这两个的源代码;
这里示例所下载的版本是 tcpdump-4.9.3.tar.gz libpcap-1.9.1.tar.gz
2.编译libpcap
解压libpcap源码,创建build目录,避免编译的临时文件污染源码
tar xvf libpcap-1.9.1.tar.gz cd libpcap-1.9.1/ mkdir build cd build
执行上层configure,指定编译器和编译结果的安装目录
../configure --host=arm-linux CC=aarch64-linux-gnu-gcc --prefix=$PWD/install
编译安装
make && make install
3.编译tcpdump
解压tcpdump源码,创建build目录,避免编译的临时文件污染源码
tar xvf tcpdump-4.9.3.tar.gz cd tcpdump-4.9.3/ mkdir build cd build
将前面编译生成的libpcap相关文件挂载到当前目录
ln -s ../../libpcap-1.9.1/build/install/ libpcap
执行上层configure,指定编译器及依赖的libpcap头文件、库文件路径,生成makefile
../configure --host=arm-linux CC=aarch64-linux-gnu-gcc CFLAGS="-I./libpcap/include/ -L./libpcap/lib/"
编译
make
4. 上传板子运行
把libpcap生成的库以及tcpdump放到板卡上
chmod +x tcpdump ln -s libpcap.so.1.9.1 libpcap.so.1
如果不是放在bin下还需要指定一下环境变量(我这边是放到tmp目录下)
export LD_LIBRARY_PATH=/tmp:$LD_LIBRARY_PATH
然后执行tcpdump就可以了