с компилятором Codewarrior, который генерирует файлы компоновщика ELF.
аюсь скомпилировать и запустить следующую программу безmain()
функция вC
, Я скомпилировал свою программу, используя следующую команду.
gcc -nostartfiles nomain.c
И компилятор выдает предупреждение
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340
Без проблем. Затем я запустил исполняемый файл (a.out), обаprintf
Заявления распечатываются успешно, а затем получаютошибка сегментации.
Итак, мой вопрос,Почему ошибка сегментации после успешного выполнения операторов печати?
мой код:
#include <stdio.h>
void nomain()
{
printf("Hello World...\n");
printf("Successfully run without main...\n");
}
выход:
Hello World...
Successfully run without main...
Segmentation fault (core dumped)
Замечания:
Вот,-nostartfiles
Флаг gcc не позволяет компилятору использовать стандартные файлы запуска при компоновке