我使用的是uboot-2016.tar.bz2这个压缩包,将其解压之后进入这个文件夹,里面所包含的文件如下图所示。
这个文件夹下包含着三个Shell脚本文件,都是可执行的,打开其中一个其内容如下。
根据自己的开发板类型决定执行哪一个Shell脚本,直接执行脚本文件,如下图所示。
显然没有这个权限,因此要在执行命令的前面加上sudo。
但是在执行的过程中还是报错了,如下图所示。
报错的具体信息如下。
cc1: error: bad value (‘armv5’) for ‘-march=’ switch
这个错误就要修改架构为arm,同时给出交叉编译器,按照网上的方法,我在当前文件夹下Makefile文件的开头添加了下面两行代码。
ARCH = arm
CROSS_COMPILE = arm-linux-gnueabihf-
保存后再次执行,这次虽然没有错误了,但是想要的文件还是没有生成,具体的信息如下图所示。
主要的问题如下,提示命令找不到。
make: arm-linux-gnueabihf-gcc: Command not found
/bin/sh: 1: arm-linux-gnueabihf-gcc: not found
这种情况下,我想着把交叉编译器安装的绝对路径加进来,这样总不会找不到了吧。
在安装交叉编译器的路径下查找到有以下文件的路径下停下,这个路径就是交叉编译器的绝对路径。
再次打开Makefile文件,将CROSS_COMPILE的路径修改为绝对路径,我修改完成之后如下。
CROSS_COMPILE = /usr/local/arm/gcc-linaro-4.9.4-2017.01-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-
再次执行下面的命令。
sudo ./build_6x_c.sh
u-boot的编译就没有问题了,编译完成后,该文件夹下所包含的文件如下图所示。
以上就是我在编译u-boot的过程中所遇到的问题,并通过文章中提到的方法解决了,希望本文对你也有所帮助!