编译busybox错误汇总

提示错误:
arm-linux-gcc:Command not found
PATH里有/usr/oca/arm/bin,但是make的时候,就是找不到 arm-linux-gcc
原因:
export PATH=$PATH:/usr/local/arm/bin是设置当前用户的PATH,而sudo执行make的时候,使用的是超级用户权限,那也就使用了超级用户的PATH(但是这个PATH里,并没有/usr/ local/arm/bin)

解决办法
先打开一个超级用户权限的
sudo -s
在当前模式下,设置环境变量export PATH=$PATH /usr/local/arm/bin,再进入到busybox目录, make CONFIG_PREFIX=/work/nfs_root/first_fs install,就成功安装busybox了。

提示错误:
/home/book/work/busybox-1.7.0/scripts/gcc-version.sh: line 11: arm-linux-gcc: command not found
/home/book/work/busybox-1.7.0/scripts/gcc-version.sh: line 11: arm-linux-gcc: command not found
CC applets/applets.o
/bin/sh: 1: arm-linux-gcc: not found
scripts/Makefile.build:192: recipe for target 'applets/applets.o' failed
make[1]: * [applets/applets.o] Error 127
Makefile:701: recipe for target 'applets' failed
make: * [applets] Error 2

原因:
交叉编译器的绝对路径与相对路径问题

解决办法
在busybox的顶层Makefile 176行 CROSS COMPILE ?= 中添加/work/tools/gcc-3.4.5-glibc-2.3.6/bin/arm-linux-的绝对路径就成功了。(为什么以前用arm-linux-就可以自己找到?)

提示错误:
CC applets/applets.o
In file included from include/busybox.h:10,

             from applets/applets.c:16:

include/libbb.h:15: error: syntax error before '<' token
In file included from /work/tools/gcc-3.4.5-glibc-2.3.6/lib/gcc/arm-linux/3.4.5/../../../../arm-linux/sys-include/dirent.h:62,

             from include/libbb.h:16,
             from include/busybox.h:10,
             from applets/applets.c:16:

/work/tools/gcc-3.4.5-glibc-2.3.6/lib/gcc/arm-linux/3.4.5/../../../../arm-linux/sys-include/bits/dirent.h:35: error: syntax error before '}' token
applets/applets.c: In function `get_trimmed_slice':
applets/applets.c:102: warning: implicit declaration of function `isspace'
scripts/Makefile.build:192: recipe for target 'applets/applets.o' failed
make[1]: * [applets/applets.o] Error 1
Makefile:701: recipe for target 'applets' failed
make: * [applets] Error 2
原因:
缺少必要头文件
解决办法
修改busybox中的源码:include/libbb.h 中,增加一行#include

如遇到排版错乱的问题,可以通过以下链接访问我的CSDN。

**CSDN:[CSDN搜索“嵌入式与Linux那些事”]

你可能感兴趣的:(c)