- 論壇徽章:
- 0
|
下面介紹一下具體過(guò)程。
1.在http://www.tcpdump.org下載libpcap-0.9.8.tar.gz和tcpdump-3.9.8.tar.gz兩個(gè)文件。
2解壓。
3.編譯,安裝libpcap-1.0.0:
(1)進(jìn)入libpcap目錄,打開(kāi)configure。將下面兩端代碼注釋掉
#if test -z "$with_pcap" && test "$cross_compiling" = yes; then
# { { echo "$as_me:$LINENO: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&5
#echo "$as_me: error: pcap type not determined when cross-compiling; use --with-pcap=..." >&2;}
# { (exit 1); exit 1; }; }
#fi
.......
# if test $ac_cv_linux_vers = unknown ; then
# { { echo "$as_me:$LINENO: error: cannot determine linux version when cross-compiling" >&5
#echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
# { (exit 1); exit 1; }; }
# fi
運(yùn)行./configure --host=arm-linu
(2)配置之后,會(huì)生成Makefile。打開(kāi)Makefile發(fā)現(xiàn)CC=arm-uclibc-linux-gcc,說(shuō)明交叉編譯配置成功。
把prefix項(xiàng)為prefix=/usr/local/arm/3.4.1/arm-linux。然后make,make install。
發(fā)現(xiàn)/usr/local/arm/3.4.1/arm-uclibc-linux/include有了3個(gè)pcap文件,libpcap編譯安裝成功。
3.編譯,安裝tcpdump-3.9.8
(1)進(jìn)入tcpdump目錄,打開(kāi)configure,將下面一段代碼注釋掉
# if test $ac_cv_linux_vers = unknown ; then
# { { echo "$as_me:$LINENO: error: cannot determine linux version when cross-compiling" >&5
#echo "$as_me: error: cannot determine linux version when cross-compiling" >&2;}
# { (exit 1); exit 1; }; }
# fi
運(yùn)行./configure --host=arm-linux
(2)打開(kāi)生成的Makefile,將INCLS項(xiàng)改為INCLS=-I.-I./../libpcap-1.0.0 -I$(srcdir)/missing -I/usr/local/include,
DEFS項(xiàng)改為DEFS=-DHAVE_CONFIG_H -I./../libpcap-1.0.0 -I/usr/local/include -I$(srcdir)missing -D_U_="__attribute__((unused))"。
LDFLAGS=-L/usr/local/lib。
然后make,make install。在/usr/local/sbin下有個(gè)tcpdump的二進(jìn)制文件,這個(gè)就是交叉編譯成功的tcpdump
(3)將這個(gè)二進(jìn)制文件下載到arm板上,chmod 777 tcpdump將其變?yōu)榭蓤?zhí)行文件。
(4)運(yùn)行tcpdump,成功!
你可能需要解決一些依賴關(guān)系,比如flex,m4,bison等
http://ftp.gnu.org/gnu/m4/
http://ftp.gnu.org/gnu/bison/
http://jaist.dl.sourceforge.net/sourceforge/flex/flex-2.5.35.tar.gz
安裝順序:
m4,flex,bison,libpcap,tcpdump。
編譯tcpdump的時(shí)候,報(bào)了一個(gè)錯(cuò)誤
undefined reference to `ip6_print'
然后我嘗試使用./configure --disable-ipv6 來(lái)消除這個(gè)錯(cuò)誤,可是不管用。
沒(méi)辦法,只好去源代碼里看看了。是print-enc.c 這個(gè)文件,打開(kāi)后找到了這么一段:
case AF_INET6:
ip6_print(p, length);
break;
我直接把ip6_print(p, length);這行給注釋
然后make && make install,一切正常。然后make && make install,一切正常。
Make error ----pcap
gcc *.o -o find_stats -lpcap
/usr/local/lib/libpcap.a(gencode.o): In function `.L149':
gencode.c:(.text+0x7b4): undefined reference to `pcap_parse'
collect2: ld returned 1 exit status
make: *** [find_stats] Error 1
solution:
![]()
文件:
source.rar
大小:
1424KB
下載:
下載
sudo apt-get install libpcap-dev
sudo apt-get install libnids-dev
sudo apt-get install libnet1-dev
本文來(lái)自ChinaUnix博客,如果查看原文請(qǐng)點(diǎn):http://blog.chinaunix.net/u3/95172/showart_2106565.html |
|