arping命令依赖libpcap和libnet,需要先交叉编译这两个库。
1.交叉编译libpcap
下载libpcap源文件,从github上克隆:
bash
git clone https://github.com/the-tcpdump-group/libpcap.git
source交叉编译环境
bash
# environment-setup是本机的交叉编译环境, 里面指定了CC CXX等,这里需要改成你自己的
source environment-setup
environment-setup里面的内容大概长这个样子:
编译:
bash
cd libpcap
./autogen.sh
./configure --prefix=`pwd`/build --host=arm-poky-linux-gnueabi
make install -j8
生成的库在build目录下面。
2. 交叉编译libnet
下载libnet源文件,这里使用的版本是1.1.5:https://github.com/libnet/libnet/archive/refs/tags/v1.1.5.tar.gz
解压并编译:
bash
tar -xf libnet-1.1.5.tar.gz
cd libnet1.1.5/libnet
mkdir -p /sw/share/aclocal
mkdir m4
./autogen.sh
./configure --prefix=`pwd`/build --host=arm-poky-linux-gnueabi
make install -j8 #可能会报错,但是库文件能编译出来
3.交叉编译arping
下载源文件,从github上克隆:
bash
git clone https://github.com/ThomasHabets/arping.git
编译:
bash
#注意点:路径使用绝对路径
#编译如果出现函数重定义,注释掉mock_libnet.c和mock_libpcap.c里的内容
# /home/xxx/workspace/arping_cmd需要换成自己的路径
./configure --prefix=`pwd`/build --host=arm-poky-linux-gnueabi LDFLAGS='-L /home/xxx/workspace/arping_cmd/libnet-1.1.5/libnet/build/lib -L /home/xxx/workspace/arping_cmd/libpcap/build/lib' CPPFLAGS='-I /home/xxx/workspace/arping_cmd/libnet-1.1.5/libnet/build/include/ -I /home/xxx/workspace/arping_cmd/libpcap/build/include'
make -j8
make install
编译完成会在build目录下生成可执行文件