在mx6ull编译uboot时报错arm-linux-gnueabihf-gcc: error: missing argument to ‘-march=’
时间: 2024-05-20 19:12:21 浏览: 200
这个错误是由于你在编译 U-Boot 时使用的交叉编译器版本与所选的 CPU 架构不兼容所导致的。
你需要检查编译器版本和所选的 CPU 架构是否匹配。例如,如果你的 CPU 架构是 ARM Cortex-A7,则应该使用 arm-linux-gnueabihf-gcc,而不是使用其他版本的交叉编译器。
你可以尝试在编译 U-Boot 时加上 -march=armv7-a 参数,这样编译器就可以根据指定的 CPU 架构来生成相应的代码,例如:make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- mx6ull_14x14_evk_defconfig && make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4 -march=armv7-a。
如果还有其他问题,请提供更多的上下文信息和错误日志,以便我更好地帮助你解决问题。
相关问题
以 EMMC 核心板为例,讲解一下如何编译出对应的 Linux 镜像文件。新建名为 “mx6ull_alientek_emmc.sh”的 shell 脚本,然后在这个 shell 脚本里面输入如下所示内容: 示例代码 35.2.1 mx6ull_alientek_emmc.sh 文件内容 1 #!/bin/sh 2 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- distclean 3 make ARCH=arm CROSS_COMPILE=arm-lin
ux-gnueabihf- alientek_emmc_defconfig
4 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- menuconfig
5 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
6 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- uImage
7 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- modules
8 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
9 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- imx6ull-alientek-emmc.dtb
10 mkdir -p output
11 cp -f arch/arm/boot/uImage output/
12 cp -f arch/arm/boot/dts/imx6ull-alientek-emmc.dtb output/
13 cp -f System.map output/
14 mkdir -p output/lib/modules
15 cp -fRv modules/* output/lib/modules/
16 rm output/lib/modules/`uname -r`/build
17 rm output/lib/modules/`uname -r`/source
18 tar -cf output.tar output
19 rm -rf output
上述代码中,第 2 行的 make 命令用于清除之前的编译结果,第 3 行的 make 命令用于配置编译环境,第 4 行的 make 命令用于打开内核配置界面,第 5 行的 make 命令用于编译内核,第 6 行的 make 命令用于编译内核镜像,第 7 行的 make 命令用于编译内核模块,第 8 行的 make 命令用于编译设备树二进制文件,第 9 行的 make 命令用于编译特定设备树文件,第 10-18 行的命令用于创建输出目录,并将编译结果复制到输出目录中,最后一行的命令用于清除临时文件。
这个脚本是针对 MX6ULL alientek EMMC 核心板进行编译的,如果需要编译其他型号的核心板,则需要相应调整配置文件和设备树文件的名称。
阅读全文