gon*_*one 5 c compiler-construction assembly
只是为了兴趣,我想手工编译并运行最简单的C程序;
//t.c
int main() {
return 0;
}
Run Code Online (Sandbox Code Playgroud)
所以我想做:
$ cpp t.c:在这种情况下不应该执行任何操作,因为不需要进行预处理$ cc1 t.c: 应该编译t.c->t.s$ as -o t.o t.c: 应该组装t.s->t.o$ ld t.o:应该生成可执行文件a.out(实际上没有什么可做的)我遇到的问题是as,因为运行最终命令会产生:
ld: warning: cannot find entry symbol _start; defaulting to 00000000000400b0
Run Code Online (Sandbox Code Playgroud)
这是怎么回事?我故意忽略了libc这一点,以使其尽可能简单,但我不明白发生了什么。我缺少什么标志?