没有标准库的分段错误

segmentation fault without standard libraries

我正在尝试编写一个不包含标准库的简单 C 程序,并尝试使用 gcc 进行编译和 运行。但我遇到了分段错误(核心已转储)

main.c:

int main(){}

执行的命令:

  1. gcc main.c -c -ffreestanding
  2. gcc main.o -e main -nostdlib
  3. ./a.out

输出:

分段错误(核心已转储)

如有任何帮助,我们将不胜感激。

除了评论中提到的问题,还有link时间的问题。如果你 运行 它带有标志 -nostdlib,它将忽略符号 symbol _start,它是默认库的一部分,crt0.o.