ARM GCC: конфликтующие архитектуры ЦП - PullRequest
0 голосов
/ 03 мая 2018

После перехода на Ubuntu 18.04 я больше не могу скомпилировать свое приложение. Я использую mbed-cli с платой St Nucleo. Это вывод команды mbed compile

[Warning] test.c@1926,32: unknown option after '#pragma GCC diagnostic' kind [-Wpragmas]
Link: sensors
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: error: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/crt0.o: Conflicting CPU architectures 13/1
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/crt0.o
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: error: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-setjmp.o): Conflicting CPU architectures 13/1
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-setjmp.o)
collect2: error: ld returned 1 exit status
[ERROR] /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: error: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/crt0.o: Conflicting CPU architectures 13/1
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/crt0.o
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: error: /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-setjmp.o): Conflicting CPU architectures 13/1
/usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/bin/ld: failed to merge target specific data of file /usr/lib/gcc/arm-none-eabi/6.3.1/../../../arm-none-eabi/lib/libc.a(lib_a-setjmp.o)
collect2: error: ld returned 1 exit status

[mbed] ERROR: "/usr/bin/python" returned error code 1.
[mbed] ERROR: Command "/usr/bin/python -u /home/user/examples/mbed-os/tools/make.py -t GCC_ARM -m nucleo_f411re --source . --build ./BUILD/nucleo_f411re/GCC_ARM" in "/home/user/examples"

Ответы [ 2 ]

0 голосов
/ 22 ноября 2018

К сожалению, я не могу комментировать OlivierM ответ, но есть важное дополнение.

Как указывалось ранее OlivierM, вам следует удалить установленное программное обеспечение и установить новое из встроенного репозитория, но если вы установили gcc-arm-none-eabi из основного представителя, он также установит binutils-arm-none-eabi, который будет конфликт с вложенным gcc-arm.

  • Итак, вы должны удалить gcc-arm-none-eabi и binutils-arm-none-eabi:

    sudo apt-get remove binutils-arm-none-eabi
    sudo apt-get remove gcc-arm-none-eabi
    
  • Теперь установите с PPA:

    sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
    sudo apt-get update
    sudo apt-get install gcc-arm-embedded
    
0 голосов
/ 14 августа 2018

Это специфическая проблема Ubuntu 18.04. Он уже был поднят здесь

Обходной путь должен установить arm-none-eabi-gcc от PPA. Вот инструкции:

  • Удалить установленное:

    sudo apt remove gcc-arm-none-eabi
    
  • Установите один из PPA:

    sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
    sudo apt-get update
    sudo apt-get install gcc-arm-embedded
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...