编译busybox的时候出现error: field 'in' has incomplete type

本文详细解析了在使用ARM交叉编译工具链进行GCC编译时遇到的GCC警告与错误,包括如何解决applets/applets.c文件中的警告及init/mesg.o等文件中的错误。解决方案涉及修改代码、添加缺失头文件等步骤,帮助开发者顺利完成编译过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

编译错误1:
applets/applets.c:15:2: warning: #warning Static linking against glibc
produces buggy executables
applets/applets.c:16:2: warning: #warning (glibc
does not cope well with ld –gc-sections).
applets/applets.c:17:2: warning:
#warning See sources.redhat.com/bugzilla/show_bug.cgi?id=3400

applets/applets.c:18:2: warning: #warning Note that glibc is unsuitable for
static linking anyway.
applets/applets.c:19:2: warning: #warning If you
still want to do it, remove -Wl,–gc-sections
applets/applets.c:20:2:
warning: #warning from scripts/trylink and remove this warning.

applets/applets.c:21:2: error: #error Aborting compilation.
make[1]: ***
[applets/applets.o] Error 1

解决办法:
修改文件 applets/applets.c 第 21 行, 将
#error Aborting compilation.

注释掉:
/*#error Aborting compilation.*/

编译错误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>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值