exit.c :(. текст + 0x18): неопределенная ссылка на `_exit ‘при использовании arm-none-eabi-gcc

Я новичок в области микроcontrollerов. Мне нужно подключить среду IDE, которая компилирует программы для микроcontrollerов AVR для компиляции программ для микроcontrollerов ARM. Я только что заменил компилятор с AVR на ARM и добавил некоторые параметры, как сказал кто-то. Ниже приведена команда:

\ARM-GCC\bin\arm-none-eabi-gcc -O0 -ffunction-sections -Wall -std=gnu99 -mfloat-abi=soft -Wa,-adhlns="[email protected]" -fmessage-length=0 -mcpu=cortex-m0 -mthumb -g3 -gdwarf-2 -Wl, --gc-sections -o \Build_Files\Blink_arm.cpp.elf \Build_Files\Blink_arm.cpp.o \Build_Files\core.a -L\Build_Files -lm 

Когда я его выполню, я получаю следующую ошибку:

 tools/arm-gcc/bin/../lib/gcc/arm-none-eabi/4.6.2\libc.a(lib_a-exit.o): In function `exit': exit.c:(.text+0x18): undefined reference to `_exit' collect2: ld returned 1 exit status 

Могу ли я получить некоторую помощь о том, что это за ошибка и как я могу ее решить. А также я не знаю, что задают эти параметры в командной строке.

Это происходит при компиляции файла с arm-none-eabi-gcc в одной машине / архитектуре для загрузки его на целевую машину ARM. Скорее всего, вы не используете semihosting, вы хотите перенацелить.

Компоновщик инструмента ARM® Версия 4.1 показывает:

Semihosting – это механизм, который позволяет коду, запущенному на цели ARM, обмениваться данными и использовать средства ввода / вывода на главном компьютере, на котором запущен отладчик.

Из файла readme.txt toolchain (в папке .../gcc-arm-none-eabi-VERSION/share/doc/gcc-arm-none-eabi ):

** non-semihosting / retarget

Если вы используете retarget, связывайтесь так: $ arm-none-eabi-gcc –specs = nosys.specs $ (OTHER_LINK_OPTIONS)

Для меня достаточно --specs=nosys.specs 😉

Использовать --specs=nosys.specs :

 arm-none-eabi-gcc --specs=nosys.specs $(OTHER_LINK_OPTIONS) 

Справка:

  • Опции ARM
  • Инструменты GNU для встроенных процессоров ARM

У меня такая же проблема. Решение было следующим:

  • Добавьте опции -ffreestanding -flto в строку вызова компилятора.
  • И добавьте опции -flto -ffreestanding -nostdlib в линию -flto -ffreestanding -nostdlib линкера.
  • Массив размером 0
  • Экспериментальная :: ошибка компоновщика файловой системы
  • Почему функция GCC работает с NOP?
  • GCC (/ Clang): функции объединения с идентичными инструкциями (сложение COMDAT)
  • Попытка понять параметр gcc -fomit-frame-pointer
  • Добавление ведущих символов подчеркивания к символам сборки с помощью GCC на Win32?
  • Когда необходимо использовать флаг -stdlib = libstdc ++?
  • Препроцессор дампа GCC определяет
  • Статическое и динамическое / совместное соединение с MinGW
  • gcc makefile error: «Нет правила для создания цели ...»
  • Как я могу сказать gcc не встраивать функцию?
  • Interesting Posts

    Disk Formater, который я могу записать на CD и загрузиться с

    Хост-сеть Windows 8 и проблема ICS, отсутствие доступа в Интернет

    Почему тестовый бегун Android сообщает «Пустой набор тестов»?

    ConnectivityManager getNetworkInfo (int) устарел

    Что происходит с глобальными и статическими переменными в общей библиотеке, когда она динамически связана?

    Ассоциативная сортировка таблицы по значению в Lua

    Операция modulo на отрицательных числах в Python

    Заблокируйте компьютер через 5 минут бездействия

    Возможно ли, что подстановочный знак Ubuntu * с tar каким-то образом не восстанавливает некоторые файлы?

    Внешний привод вызывает ошибки прожектора и индексации

    получить все ключи, установленные в memcached

    Использовать имя classа в качестве корневого ключа для сериализации JSON Jackson

    Как конвертировать POJO в JSON и наоборот?

    Как заменить загрузчик GRUB, изнутри Windows?

    Как инициализировать все элементы массива с одинаковым значением?

    Давайте будем гением компьютера.