[读书笔记]helloworld具体编译执行过程

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [读书笔记]helloworld具体编译执行过程

下面是我们几乎每个程序员学习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:链接。

原创文章,转载请注明: 转载自勤奋的小青蛙
本文链接地址: [读书笔记]helloworld具体编译执行过程

文章的脚注信息由WordPress的wp-posturl插件自动生成



|2|left
打赏

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: