gcc:错误:无法识别的命令行选项

EBB*_*lut 4 linux gcc arm u-boot centos7

我正在尝试创建一个 u-boot 映像文件。但我有一些错误吗?

\n\n
gcc version: 7.3.0\n\nmake PATH=/opt/CodeSourcery/Sourcery_G++_Lite/arm-2011.03-41-arm-none-linux-gnueabi:$PATH\nexport CROSS_COMPILE=arm-linux-gnueabihf-(or arm-none-linux-gnueabi)\nmake ARCH=arm xilinx_zynq_defconfig\nmake -j ARCH=arm UIMAGE_LOADADDR=0x8000 uImage\n
Run Code Online (Sandbox Code Playgroud)\n\n

错误:

\n\n
gcc: error: unrecognized argument in option \xe2\x80\x98-mabi=aapcs-linux\xe2\x80\x99\ngcc: note: valid arguments to \xe2\x80\x98-mabi=\xe2\x80\x99 are: ms sysv\ngcc: error: unrecognized command line option \xe2\x80\x98-mlittle-endian\xe2\x80\x99; did you mean \xe2\x80\x98-fconvert=little-endian\xe2\x80\x99?\ngcc: error: unrecognized command line option \xe2\x80\x98-mfpu=vfp\xe2\x80\x99; did you mean \xe2\x80\x98-mcpu=\xe2\x80\x99?\n  CC      scripts/mod/devicetable-offsets.s\n
Run Code Online (Sandbox Code Playgroud)\n\n

我该如何修复?任何想法?

\n

Xyp*_*ron 5

您的 PATH 指向某个 2011 GCC 交叉编译器。您至少需要 2016 年发布的 GCC 6。请安装最新版本的 GCC。

在 Debian 或 Ubuntu 上,主机系统的 C 编译器和交叉编译器是单独的软件包。您可以使用以下命令安装 32 位和 64 位 ARM 的交叉编译器:

sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install gcc-aarch64-linux-gnu
Run Code Online (Sandbox Code Playgroud)

由于编译器安装在 /usr/bin 中,因此设置 CROSS_COMPILER 变量就足够了,例如

export CROSS_COMPILE=arm-linux-gnueabihf-
Run Code Online (Sandbox Code Playgroud)

或者

export CROSS_COMPILE=aarch64-linux-gnu-
Run Code Online (Sandbox Code Playgroud)