一、编译原理(过程)
hello.c ---> hello.i ----->hello.s ---> hello.o -----> hello
C 源文件 C 源文件 汇编源文件 可重定位文件 可执行文件
//hello.c
#include<stdio.h>
int main()
{
printf("hello\n");
return 0;
}
编译的过程:
1. 预处理
gcc -E hello.c -o hello.i
-E:是给预处理器下的命令
-o: 指定将要生成的目标文件的名字
预处理:预处理仅仅是文件内容的替换,和注释的去除, 并不实际的参与编译的过程
2. 编译
gcc -S hello.i -o hello.s
-S: 是给编译器下的命令
编译:将C语言的语句翻译成汇编指令
3. 汇编
gcc -c hello.s -o hello.o
-c:是给汇编器下的命令
4. 链接
gcc hello.o -o hello
链接:将目标文件与静态库或动态库进行链接生成可执行文件 hello
二、a.out的形成
gcc hello.c--->a.out