Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2161183
  • 博文数量: 361
  • 博客积分: 10828
  • 博客等级: 上将
  • 技术积分: 4161
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-20 14:34
文章分类

全部博文(361)

文章存档

2011年(132)

2010年(229)

分类: LINUX

2010-11-09 14:51:44

BUSYBOX编译备忘录

编译busybox的组合:
busybox-1.0.0   arm-linux-gcc-2.95.3 (AT91rm9200开发板)
 
经典参考:
下载busybox
文件系统制作
 
移植基本过程:
1. 到下载busybox;
2. 解压busybox1.7.3
    tar jxvf busybox-1.7.3.tar.bz2
3. make defconfig
4. make menuconfig
   在[build options]中选择[Build busybox as a static binary]
    主要是C库的连接方式,安装目录等。
5. make
6. 创建rootfs目录
7. make install 
  
编译过程可能出现以下错误,解决方法如下:
  
 
可能会出现的错误:


1. 出现如下错误


   CC miscutils/taskset.o
  miscutils/taskset.c:17: error: parse error before '*' token
  miscutils/taskset.c:18: warning: function declaration isn't a prototype
  miscutils/taskset.c: In function `__from_cpuset':
  miscutils/taskset.c:22: error: `CPU_SETSIZE' undeclared (first use in this function)
  miscutils/taskset.c:22: error: (Each undeclared identifier is reported only once
  miscutils/taskset.c:22: error: for each function it appears in.)
  miscutils/taskset.c:26: warning: implicit declaration of function `CPU_ISSET'
  miscutils/taskset.c:26: error: `mask' undeclared (first use in this function)
  miscutils/taskset.c: In function `taskset_main':
  miscutils/taskset.c:47: error: `cpu_set_t' undeclared (first use in this function)
  miscutils/taskset.c:47: error: parse error before "mask"
  miscutils/taskset.c:68: warning: implicit declaration of function `CPU_ZERO'
  miscutils/taskset.c:68: error: `new_mask' undeclared (first use in this function)
  miscutils/taskset.c:69: error: `CPU_SETSIZE' undeclared (first use in this function)
  miscutils/taskset.c:71: warning: implicit declaration of function `CPU_SET'
  miscutils/taskset.c:78: error: `mask' undeclared (first use in this function)
  make[1]: *** [miscutils/taskset.o] Error 1
  make: *** [miscutils] Error 2
  
make menuconfig 
   找到[Miscellaneous Utilities],去掉[task set]
 


2. 如下错误:

time.c
libbb/time.c:20: error: "CLOCK_MONOTONIC" undeclared (first use in this function)
make menuconfig


  去掉Busybox Settings->Busybox Library Tuning->[]Use clock_gettie(CLOCK_MONOTONIC) syscall

3.出现如下错误:

In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/fs.h:12,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/capability.h:17,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/binfmts.h:5,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:9,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,
                from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:4: warning: `WNOHANG' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:26: warning:
this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/wait.h:5: warning: `WUNTRACED' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/waitflags.h:27: warning:
this is the location of the previous definition
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/sched.h:77,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/inetpeer.h:14,
                from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:28,
                from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:108: warning: `FD_SET' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:83: warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:109: warning: `FD_CLR' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:84: warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:110: warning: `FD_ISSET' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:85: warning: this is the location of the previous definition
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/linux/time.h:111: warning: `FD_ZERO' redefined
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/sys/select.h:86: warning: this is the location of the previous definition
In file included from /busybox-1.01/networking/route.c:42:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/net/route.h:34: warning: #warning This file is not supposed to be used outside of kernel.
……
……
In file included from /usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/netdb.h:38,
                from /busybox-1.01/include/libbb.h:36,
                from /busybox-1.01/include/busybox.h:54,
                from /busybox-1.01/networking/route.c:44:
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:34: redefinition of `union sigval'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:37: warning: redefinition of `sigval_t'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:11: warning: `sigval_t' previously declared here
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:274: redefinition of `struct sigevent'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:289: warning: redefinition of `sigevent_t'
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/sys-include/asm/siginfo.h:211: warning: `sigevent_t' previously declared here
/usr/local/arm/2.95.3/lib/gcc-lib/arm-linux/2.95.3/../../../../arm-linux/include/bits/siginfo.h:298: parse error before `0'
In file included from /busybox-1.01/include/busybox.h:54,
                from /busybox-1.01/networking/route.c:44:
/busybox-1.01/include/libbb.h:112: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:113: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:135: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:251: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:256: redefinition of `struct sysinfo'
/busybox-1.01/include/libbb.h:272: warning: declaration of `info' shadows global declaration
/busybox-1.01/include/libbb.h:309: warning: declaration of `flags' shadows global declaration
/busybox-1.01/include/libbb.h:440: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c:475: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c: In function `set_flags':
/busybox-1.01/networking/route.c:476: warning: declaration of `flags' shadows global declaration
/busybox-1.01/networking/route.c: In function `displayroutes':
/busybox-1.01/networking/route.c:490: warning: declaration of `flags' shadows global declaration
make: *** [/busybox-1.01/networking/route.o] Error 1

去掉Busybox Settings->NetWork device-->[]route

4.如下错误:

usr/src/armlinux/busybox-1.0.0/libbb/loop.c:32:linux/version.h:No such file or directory
/usr/src/armlinux/busybox-1.0.0/libbb/loop.c:35 arse error
/usr/src/armlinux/busybox-1.0.0/libbb/loop.c:37 arse error

将内核源码下的include/linux目录下的versition.h文件

放到 busybox-1.0.0/include/linux下

.....

(以上错误并不全是自己遇到的,仅收集以备忘)



相关问题可参考
交叉编译busybox

Busybox 的编译过程
http://blog.tianya.cn/blogger/post_show.asp?BlogID=1351475&PostID=12381125
阅读(2358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~