前段时间买了一块2451(友善之臂)的开发板,昨天想编译下写的驱动程序,但是出现如下的错误:
cc1: error: unrecognized command line option "-mlittle-endian"
cc1: error: unrecognized command line option "-mapcs"
cc1: error: unrecognized command line option "-mno-sched-prolog"
cc1: error: unrecognized command line option "-mabi=aapcs-linux"
cc1: error: unrecognized command line option "-mno-thumb-interwork"
arch/arm/kernel/asm-offsets.c:1: error: bad value (armv5t) for -march= switch
arch/arm/kernel/asm-offsets.c:1: error: bad value (strongarm) for -mtune= switch
此错误是因为没有加载交叉编译器。有同学可能会说我已经安装交叉编译器了啊! 你虽然安装了,但是你没有修改内核根目录下的makefile文件,所以不行。
解决方案:
先编译拷贝到虚拟机上的内核(将开发板的内核拷贝过来)编译。编译之前在内核根目录下使用make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-命令CROSS_COMPILE的值你要是不知道可以用arm-linux-gcc -v命令查看,如图所示,Target后面的值就是了。使用完make ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi-命令后就可以编译内核了。