下面是我们几乎每个程序员学习C语言的第一个程序:
#include <stdio.h> int main() { printf("Hello World\n"); return 0; }
这么简单的一个程序,在Linux里面其实执行的具体过程如下:
[root@localhost hello]# rm -rf a.out [root@localhost hello]# gcc -E hello.c -o hello.i [root@localhost hello]# gcc -S hello.i -o hello.s [root@localhost hello]# as hello.s -o hello.o [root@localhost hello]# ld -static /usr/lib/crt1.o /usr/lib/crti.o /usr/lib/gcc/i386-redhat-linux/4.1.1/crtbeginT.o -L/usr/lib/gcc/i386-redhat-linux/4.1.1 -L/usr/lib -L/lib hello.o --start-group -lgcc -lgcc_eh -lc --end-group /usr/lib/gcc/i386-redhat-linux/4.1.1/crtend.o /usr/lib/crtn.o [root@localhost hello]# ./a.out Hello World [root@localhost hello]#
具体的过程大致如下:
1:预编译;
2:编译;
3:汇编;
4:链接。
文章的脚注信息由WordPress的wp-posturl插件自动生成