我正在尝试编译和运行以下没有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标志可防止编译器在链接时使用标准启动文件