前言:本文主要记录用各个版本的编译器编译出来代码运行结果。
1. (zImage)
Busybox-1.3.2: arm-linux-gcc-3.3.2
Linux-2.6.26.3:arm-linux-gcc-3.4.1
编译结果:正常通过。
运行结果:看到控制台
2. (zImage2)
Busybox-1.3.2: arm-linux-gcc-3.3.2
Linux-2.6.30: arm-linux-gcc-3.4.1
编译结果:正常通过。
运行结果:看到控制台
3.
Busybox-1.3.2: arm-linux-gcc-3.4.1
Linux-2.6.30: arm-linux-gcc-3.4.1
编译结果:Busybox-1.3.2编译不通过
运行结果:XXX
4. (zImage3)
Busybox-1.3.2: arm-linux-gcc-3.3.2
Linux-2.6.30: arm-linux-gcc-4.3.2 (linux编译的时候不选上eabi)
编译结果:linux编译不通过,要把Linux-2.6.30目录下的Makefile的194行改为
194 CROSS_COMPILE ?=arm-none-linux-gnueabi-
编译才通过
运行结果:看到控制台
5. (zImage4)
Busybox-1.3.2: arm-linux-gcc-3.3.2
Linux-2.6.30: arm-linux-gcc-4.3.2 (linux编译的时候选上eabi)
编译结果:linux编译不通过,要把Linux-2.6.30目录下的Makefile的194行改为
194 CROSS_COMPILE ?=arm-none-linux-gnueabi-
编译才通过
运行结果:看到控制台
6. (***)
Busybox-1.3.2: arm-linux-gcc-4.3.2
Linux-2.6.30: arm-linux-gcc-4.3.2 (linux编译的时候选上eabi)
编译结果:Busybox-1.3.2编译不通过
运行结果:XXX
7. (zImage4)
Busybox-1.15.2(这个版本的文件系统是支持eabi的): arm-linux-gcc-4.3.2
Linux-2.6.30: arm-linux-gcc-4.3.2 (linux编译的时候选上eabi)
编译结果:正常通过
运行结果:运行正常 (难能可贵的是在secureCRT终端下TAB键、四个箭头键、delete键、退格键都能够正常使用)
8. (zImage3)
Busybox-1.15.2(这个版本的文件系统是支持eabi的): arm-linux-gcc-4.3.2
Linux-2.6.30: arm-linux-gcc-4.3.2 (linux编译的时候不选上eabi)
编译结果:正常通过
运行结果:一大堆错误
9.( zImage2)
Busybox-1.15.2(这个版本的文件系统是支持eabi的): arm-linux-gcc-4.3.2
Linux-2.6.30: arm-linux-gcc-3.4.1 (linux编译的时候不选上eabi)
编译结果:正常通过
运行结果:一大堆错误(同 7. 中的错误)
10.( zImage)
Busybox-1.15.2(这个版本的文件系统是支持eabi的): arm-linux-gcc-4.3.2
Linux-2.6.26.3: arm-linux-gcc-3.4.1 (linux编译的时候不选上eabi)
编译结果:正常通过
运行结果:有几行错误
11.下面情况编译都是不通过的
Busybox-1.15.2: arm-linux-gcc-3.4.1或arm-linux-3.3.2
Linux-2.6.30(选上支持eabi): arm-linux-gcc-3.4.1或arm-linux-3.3.2
12.通过以上11种情况的分析对内核和文件系统是否支持eabi的搭配做如下总结:
内核 (1:支持eabi,0:不支持eabi) | 文件系统 (1:支持eabi,0:不支持eabi) | 结果(1:可以运行,0:不可运行) |
0 | 0 | 1 |
0 | 1 | 0 |
1 | 0 | 1 |
1 | 1 | 1 |