我使用海思编译链,gcc分别是:arm-hisiv300-linux-gcc和arm-himix200-linux-gcc。和其他工具类似,先configure,再make。
1、libpcap:
1、configure:
./configure --disable-usb --disable-bluetooth --host=arm-himix200-linux
如上所示为配置方法,编译链为arm-himix200-linux-gcc,配置的时候要去掉"-gcc"这4各字符,不然编译错误。根据./configure -h的提示可以减去一些功能,可以减小工具大小。libpcap是核心,根本都在这里,而非tcpdump。
2、make:
直接make clean;make即可,很正常,如果刚一执行就报错,那有可能和arm-himix200-linux-gcc一样,需要先配置一下环境,执行:export LC_ALL=C,再执行make clean;make.arm-hisiv300-linux-gcc则不需要此操作,也许和编译工具的制作有关吧。
2、tcpdump
和libpcap相同,先configure再make。
结语
libpcap的代码涉及一些内核内存逻辑,我不太熟悉,就不写了。整体逻辑是:create-->active-->loop,这篇文章列出的接口都狠重要。可以深入研究一下。