busybox1.19.3编译错误解决办法

来源:互联网 发布:如何编程游戏 编辑:程序博客网 时间:2024/04/27 19:55

参考:http://www.haogongju.net/art/1174661

操作步骤:

1.解压缩

tar jxvf busybox-1.19.3.tar.bz2

2.修改Makefile

进入busybox-1.19.3目录

修改Makefile的第164行为:

        CROSS_COMPILE=arm-none-linux-gnueabi-

修改第190行为:

        ARCH=arm

3.配置,并编译

        make menuconfig

       配置完之后选择“Save Configuration to an AlternateFile”保存

     然后make;make install

在_install就是生成的文件

关于配置的注释:

  • make defconfig - Create the maximum "sane" configuration. Thisenables almost all features, minus things like debugging options and featuresthat require changes to the rest of the system to work (such as selinux ordevfs device names). Use this if you want to start from a full-featuredBusybox and remove features until it's small enough.

  • make allnoconfig - Disable everything. This creates a tiny versionof Busybox that doesn't do anything. Start here if you know exactly whatyou want and would like to select only those features.

  • make menuconfig - Interactively modify a .config file through amulti-level menu interface. Use this after one of the previous two.


出现如下错误


miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directory
miscutils/ubi_tools.c: In function 'ubi_tools_main':
miscutils/ubi_tools.c:133: error: 'UBI_DEV_NUM_AUTO' undeclared (first use in this function)
miscutils/ubi_tools.c:133: error: (Each undeclared identifier is reported only once
miscutils/ubi_tools.c:133: error: for each function it appears in.)
miscutils/ubi_tools.c:134: error: 'UBI_VOL_NUM_AUTO' undeclared (first use in this function)
miscutils/ubi_tools.c:153: error: storage size of 'req' isn't known
miscutils/ubi_tools.c:161: error: 'UBI_IOCATT' undeclared (first use in this function)
miscutils/ubi_tools.c:153: warning: unused variable 'req'
miscutils/ubi_tools.c:167: error: 'UBI_IOCDET' undeclared (first use in this function)
miscutils/ubi_tools.c:170: error: storage size of 'req' isn't known
miscutils/ubi_tools.c:177: error: 'UBI_MAX_VOLUME_NAME' undeclared (first use in this function)
miscutils/ubi_tools.c:184: error: 'UBI_STATIC_VOLUME' undeclared (first use in this function)
miscutils/ubi_tools.c:186: error: 'UBI_DYNAMIC_VOLUME' undeclared (first use in this function)
miscutils/ubi_tools.c:195: error: 'UBI_IOCMKVOL' undeclared (first use in this function)
miscutils/ubi_tools.c:170: warning: unused variable 'req'
miscutils/ubi_tools.c:201: error: 'UBI_IOCRMVOL' undeclared (first use in this function)
miscutils/ubi_tools.c:204: error: storage size of 'req' isn't known
miscutils/ubi_tools.c:214: error: 'UBI_IOCRSVOL' undeclared (first use in this function)
miscutils/ubi_tools.c:204: warning: unused variable 'req'
miscutils/ubi_tools.c:222: error: 'UBI_IOCVOLUP' undeclared (first use in this function)
make[1]: *** [miscutils/ubi_tools.o] 错误 1
make: *** [miscutils] 错误 2
出现这么多的错误,核心问题就是出现在miscutils/ubi_tools.c:63:26: error: mtd/ubi-user.h: No such file or directory这个上面

,无法找到mtd/ubi-user.h头文件,查阅了相关资料后,原来这是一个Linux下新支持的UBI文件系统,需要手 工加入。

解决办法:

从Linux2.6.29的include\mtd\ubi-user.h拷贝到busybox下的include\mtd下,

如果 busybox下的include没有mtd文件夹,那就先建立一个mtd文件夹,然后复制了。

这样做了之后,编译就OK了。4


4.最后make install

   就会在_install目录下生成需要的文件