g cc: ошибка: неопознанный параметр командной строки - PullRequest
1 голос
/ 17 июня 2020

Я пытаюсь создать файл образа u-boot. Но есть ли у меня ошибка.

gcc version: 7.3.0

make PATH=/opt/CodeSourcery/Sourcery_G++_Lite/arm-2011.03-41-arm-none-linux-gnueabi:$PATH
export CROSS_COMPILE=arm-linux-gnueabihf-(or arm-none-linux-gnueabi)
make ARCH=arm xilinx_zynq_defconfig
make -j ARCH=arm UIMAGE_LOADADDR=0x8000 uImage

ОШИБКА:

gcc: error: unrecognized argument in option ‘-mabi=aapcs-linux’
gcc: note: valid arguments to ‘-mabi=’ are: ms sysv
gcc: error: unrecognized command line option ‘-mlittle-endian’; did you mean ‘-fconvert=little-endian’?
gcc: error: unrecognized command line option ‘-mfpu=vfp’; did you mean ‘-mcpu=’?
  CC      scripts/mod/devicetable-offsets.s

Как я могу исправить? есть идеи?

Ответы [ 2 ]

1 голос
/ 17 июня 2020

Ваш PATH указывает на какой-то кросс-компилятор 2011 G CC. Вам нужен как минимум G CC 6, выпущенный в 2016 году. Пожалуйста, установите текущий выпуск G CC.

В Debian или Ubuntu компилятор C для хост-системы и кросс-компилятор отдельные пакеты. Вы можете установить кросс-компилятор для 32-битной и 64-битной ARM с помощью:

sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install gcc-aarch64-linux-gnu

Поскольку компиляторы установлены в / usr / bin, достаточно установить переменную CROSS_COMPILER, например

export CROSS_COMPILE=arm-linux-gnueabihf-

или

export CROSS_COMPILE=aarch64-linux-gnu-
0 голосов
/ 19 июня 2020

Более детерминированный c способ указать на точную цепочку инструментов, которую вы хотите использовать, - это указать ее полный префикс при установке CROSS_COMPILE. Это позволит избежать возможных ошибок, связанных с путями, и информация о том, какой именно набор инструментов использовался для сборки, будет встроен в ваш сценарий сборки.

Полный пример - установка официального набора инструментов Arm g cc и получение / сборка u -boot 20.04 для xilinx_zynq_virt (используйте свой собственный u-boot и defconfig):

# gcc 9.2.0
mkdir -p /opt/arm/9
wget 'https://developer.arm.com/-/media/Files/downloads/gnu-a/9.2-2019.12/binrel/gcc-arm-9.2-2019.12-x86_64-arm-none-eabi.tar.xz?revision=64186c5d-b471-4c97-a8f5-b1b300d6594a&la=en&hash=5E9204DA5AF0B055B5B0F50C53E185FAA10FF625'
tar Jxf gcc-arm-9.2-2019.12-x86_64-arm-none-eabi.tar.xz -C /opt/arm/9

# u-boot
wget https://github.com/u-boot/u-boot/archive/v2020.04.tar.gz
tar zxf v2020.04.tar.gz
cd u-boot-2020.04
make CROSS_COMPILE=/opt/arm/9/gcc-arm-9.2-2019.12-x86_64-arm-none-eabi/bin/arm-none-eabi- ARCH=arm mrproper xilinx_zynq_virt_defconfig all
ll -gG u-boot*
-rwxrwxr-x 1 5778348 Jun 19 08:08 u-boot*
-rwxrwxr-x 1  599172 Jun 19 08:08 u-boot.bin*
-rw-rw-r-- 1   14907 Jun 19 08:08 u-boot.cfg
-rw-rw-r-- 1    9181 Jun 19 08:09 u-boot.cfg.configs
-rwxrwxr-x 1  665132 Jun 19 08:09 u-boot.elf*
-rw-rw-r-- 1      70 Jun 19 08:09 u-boot-elf.lds
-rw-rw-r-- 1  599612 Jun 19 08:09 u-boot-elf.o
-rw-rw-r-- 1  599236 Jun 19 08:09 u-boot.img
-rw-rw-r-- 1    1626 Jun 19 08:08 u-boot.lds
-rw-rw-r-- 1  696711 Jun 19 08:08 u-boot.map
-rwxrwxr-x 1  599172 Jun 19 08:08 u-boot-nodtb.bin*
-rwxrwxr-x 1 1797626 Jun 19 08:08 u-boot.srec*
-rw-rw-r-- 1  184969 Jun 19 08:08 u-boot.sym

Надеюсь, это поможет.

...