编译Busybox时出现一下错误提示:
modutils/lib.a(insmod.o): In function `insmod_main':
insmod.c:(.text.insmod_main+0xf18): warning: warning: create_moduleis not implemented and will always fail
insmod.c:(.text.insmod_main+0x5a0): warning: warning: query_moduleis not implemented and will always fail
networking/libiproute/lib.a(iptunnel.o): In function`print_tunnel':
iptunnel.c:(.text.print_tunnel+0x220): undefined reference to`__cpu_to_be16'
iptunnel.c:(.text.print_tunnel+0x234): undefined reference to`__cpu_to_be16'
iptunnel.c:(.text.print_tunnel+0x270): undefined reference to`__cpu_to_be16'
iptunnel.c:(.text.print_tunnel+0x284): undefined reference to`__cpu_to_be16'
iptunnel.c:(.text.print_tunnel+0x2a8): undefined reference to`__cpu_to_be16'
networking/libiproute/lib.a(iptunnel.o):iptunnel.c:(.text.print_tunnel+0x2d0):more undefined references to `__cpu_to_be16' follow
collect2: ld returned 1 exit status
make: *** [busybox_unstripped] Error 1
解决方法:
修改 networking/libiproute/iptunnel.c文件
在#include <asm/types.h>
后面加上
#include <asm/byteorder.h>
(2)
编译错误2:
warn_unused_result
CC init/mesg.o
AR init/lib.a
LD
ipsvd/built-in.o
CC ipsvd/ipsvd_perhost.o
CC
ipsvd/tcpudp.o
In file included from
/opt/arm-linux/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/netfilter_ipv4.h:8,
from
ipsvd/tcpudp.c:33:
/opt/arm-linux/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h:55:
error: field ‘in’ has incomplete
type
/opt/arm-linux/bin/../arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h:56:
error: field ‘in6′ has incomplete type
ipsvd/tcpudp.c: In function
‘tcpudpsvd_main’:
ipsvd/tcpudp.c:314: warning: ignoring return value of
‘write’, declared with attribute warn_unused_result
make[1]: ***
[ipsvd/tcpudp.o] 错误 1
make: *** [ipsvd] 错误 2
解决办法:
arm-linux 交叉编译工具链
在 usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include/linux/netfilter.h 头文件的开头
添加缺少的头文件:
#include <netinet/in.h>