Hello World
#include <stdio.h>
int main(void){
printf("Hello World!\n");
return 0;
}
将程序保存为hello.c文件,然后编译执行
$ gcc hello.c -o hello
$ ./hello
Hello World!
编译的过程
这里gcc命令就是编译命令,是使用GCC编译器将hello.c的源文件编译编译成为hello.out的二进制可执行文件的过程。可分为四个步骤:预处理-编译-汇编-链接。
步骤 | 预处理 | 编译 | 汇编 | 链接 |
---|---|---|---|---|
生成文件 | hello.i(文本文件) | hello.s(文本文件) | hello.o(二进制文件) | hello.out(二进制文件) |
解释 | 预处理用于将所有的#include头文件以及宏定义替换成其真正的内容,就是将头文件包含的内容复制进来,生成一个新的文本文件。 | 将预处理后的程序转换为汇编语言程序的过程。 | 将汇编语言程序转换为机器语言的过程。 | 将程序用到的不同.o文件连接起来的生成最终的可执行文件的过程。比如hello程序中用到了来自stdio.h中定义的printf函数,可以理解为将hello.o和printf.o链接起来的过程。 |