ubuntu11.04下编译busybox

来源:互联网 发布:数据库主键外键约束 编辑:程序博客网 时间:2024/06/07 07:48

解决:busybox编译 fatal error: curses.h: 没有那个文件或目录

执行make menuconfig时出现如下错误

@ubuntu:/home/dev/busybox-1.19.3# make menuconfig
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
In file included from scripts/kconfig/lxdialog/checklist.c:24:0:
scripts/kconfig/lxdialog/dialog.h:31:20: fatal error: curses.h: 没有那个文件或目录
compilation terminated.
make[2]: *** [scripts/kconfig/lxdialog/checklist.o] 错误 1
make[1]: *** [menuconfig] 错误 2
make: *** [menuconfig] 错误 2

 

这时因为ubuntu系统中缺少一个套件 ncurses devel ,把此套件安装下即可

apt-get install libncurses5-dev

 

@ubuntu:/home/dev/busybox-1.19.3# apt-get install libncurses5-dev
正在读取软件包列表... 完成
正在分析软件包的依赖关系树       
正在读取状态信息... 完成       
下列软件包是自动安装的并且现在不需要了:
  linux-headers-2.6.38-8 linux-headers-2.6.38-8-generic
使用'apt-get autoremove'来卸载它们
建议安装的软件包:
  ncurses-doc
下列【新】软件包将被安装:
  libncurses5-dev
升级了 0 个软件包,新安装了 1 个软件包,要卸载 0 个软件包,有 113 个软件包未被升级。
需要下载 290 kB 的软件包。
解压缩后会消耗掉 1,294 kB 的额外空间。
获取:1 http://mirrors.ustc.edu.cn/ubuntu/ natty/main libncurses5-dev i386 5.7+20101128-1 [290 kB]
下载 290 kB,耗时 6秒 (45.7 kB/s)                                              
选中了曾被取消选择的软件包 libncurses5-dev。
(正在读取数据库 ... 系统当前共安装有 203021 个文件和目录。)
正在解压缩 libncurses5-dev (从 .../libncurses5-dev_5.7+20101128-1_i386.deb) ...
正在设置 libncurses5-dev (5.7+20101128-1) ...
@ubuntu:/home/dev/busybox-1.19.3# make menuconfig
  HOSTCC  scripts/kconfig/lxdialog/checklist.o
  HOSTCC  scripts/kconfig/lxdialog/inputbox.o
  HOSTCC  scripts/kconfig/lxdialog/lxdialog.o
scripts/kconfig/lxdialog/lxdialog.c: In function ‘j_inputbox’:
scripts/kconfig/lxdialog/lxdialog.c:192:3: warning: format not a string literal and no format arguments
  HOSTCC  scripts/kconfig/lxdialog/menubox.o
  HOSTCC  scripts/kconfig/lxdialog/msgbox.o
  HOSTCC  scripts/kconfig/lxdialog/textbox.o
  HOSTCC  scripts/kconfig/lxdialog/util.o
  HOSTCC  scripts/kconfig/lxdialog/yesno.o
  HOSTLD  scripts/kconfig/lxdialog/lxdialog
scripts/kconfig/mconf Config.in
#
# using defaults found in .config
#

 

问题解决



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

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



0 0