我使用海思編譯鏈,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,這篇文章列出的接口都狠重要。可以深入研究一下。