没有标准库的分段错误
segmentation fault without standard libraries
我正在尝试编写一个不包含标准库的简单 C 程序,并尝试使用 gcc 进行编译和 运行。但我遇到了分段错误(核心已转储)
main.c:
int main(){}
执行的命令:
- gcc main.c -c -ffreestanding
- gcc main.o -e main -nostdlib
- ./a.out
输出:
分段错误(核心已转储)
如有任何帮助,我们将不胜感激。
除了评论中提到的问题,还有link时间的问题。如果你 运行 它带有标志 -nostdlib
,它将忽略符号 symbol _start
,它是默认库的一部分,crt0.o
.
我正在尝试编写一个不包含标准库的简单 C 程序,并尝试使用 gcc 进行编译和 运行。但我遇到了分段错误(核心已转储)
main.c:
int main(){}
执行的命令:
- gcc main.c -c -ffreestanding
- gcc main.o -e main -nostdlib
- ./a.out
输出:
分段错误(核心已转储)
如有任何帮助,我们将不胜感激。
除了评论中提到的问题,还有link时间的问题。如果你 运行 它带有标志 -nostdlib
,它将忽略符号 symbol _start
,它是默认库的一部分,crt0.o
.