Не удается найти символ ввода _start

Мой код c для компиляции на gcc дает ошибку Cannot find entry symbol _start defaulting to 00000. Может ли кто-нибудь сказать мне, почему и как его исправить?

Командная строка arm-none-eabi-gcc -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -ftree-vectorize -mfloat-abi=softfp file path, а целевая платформа - 8-ситарный процессор cortex.

Ответ 1

Единственная причина, по которой компилятор выбрал указанную выше ошибку, состоит в том, что исходный код (_start function), созданный ОС для запуска вашего кода, не может найти основную функцию по умолчанию или зарегистрированную функцию. Таким образом, либо вы можете использовать функцию _start вместо основной функции, но команда компиляции должна быть gcc -nostartfiles filename.c, но с использованием _start существует множество исключений, поэтому лучше использовать main вместо этого.

Ответ 2

-none-part означает, что ваша инструментальная цепочка не создается для конкретной операционной системы, поэтому вы должны определить точку входа _start. Для не-bare-metal toolchains, которые строятся для конкретной операционной системы, _start предоставляется стандартной библиотекой, которая по порядку будет называться main, когда все будет настроено.