只是为了兴趣,我想手动编译和运行最简单的C程序;
//t.c
int main() {
return 0;
}
所以我想做:
$ 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
这是怎么回事?我故意遗漏了libc这一点,以使其尽可能简单,但我不明白发生了什么。我错过了什么标志?