《开发板移植tcpdump 交叉编译 带有依赖库如何移植》

发布时间 2023-05-09 17:20:40作者: 一个不知道干嘛的小萌新

1.下载源码

  由于tcpdump依赖于libpcap,所以需要先下载这两个的源代码;

  官方地址:https://www.tcpdump.org/

  这里示例所下载的版本是 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下还需要指定一下环境变量

export LD_LIBRARY_PATH=./

  然后执行tcpdump就可以了