Compile y ejecute el programa sin main () en C
Estoy tratando de compilar y ejecutar el siguiente programa sinmain()
funcionar enC
. He compilado mi programa usando el siguiente comando.
gcc -nostartfiles nomain.c
Y el compilador da advertencia
/usr/bin/ld: warning: cannot find entry symbol _start; defaulting to 0000000000400340
Está bien, no hay problema. entonces, he ejecutado el archivo ejecutable (a.out), ambosprintf
las declaraciones se imprimen correctamente y luego obtienenFallo de segmentación.
Entonces, mi pregunta es,¿Por qué falla la segmentación después de ejecutar correctamente las declaraciones de impresión?
mi código:
#include <stdio.h>
void nomain()
{
printf("Hello World...\n");
printf("Successfully run without main...\n");
}
salida:
Hello World...
Successfully run without main...
Segmentation fault (core dumped)
Nota:
Aquí,-nostartfiles
El indicador gcc evita que el compilador use archivos de inicio estándar al vincular