Compilar e executar o programa sem main () em C
Estou tentando compilar e executar o seguinte programa semmain()
função emC
. Eu compilei meu programa usando o seguinte comando.
gcc -nostartfiles nomain.c
E o compilador avisa
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340
Ok, não tem problema. executei o arquivo executável (a.out), ambosprintf
as instruções são impressas com êxito efalha de segmentação.
Então, minha pergunta é:Por que falha na segmentação após executar com êxito as instruções de impressão?
meu código:
#include <stdio.h>
void nomain()
{
printf("Hello World...\n");
printf("Successfully run without main...\n");
}
resultado:
Hello World...
Successfully run without main...
Segmentation fault (core dumped)
Nota:
Aqui,-nostartfiles
O sinalizador gcc impede que o compilador use arquivos de inicialização padrão ao vincular