序言
程序编译
- 预处理
- 编译
- 汇编
- 链接
代码准备
#include <stdio.h>
#define M 10
int main()
{
printf("%d\n",M);
return 0;
}
预处理(预编译)
gcc -E test.c -o test.i
作用
- 展开库
- 替换宏
看看,代码一下子变成了800多行,这是库函数的展开,并且我们看到宏M已经被替换成了10,此时仍旧是C语言代码
编译
gcc -S test.i -o test.s
- 将C语言编译成汇编代码
汇编
gcc -c test.s -o test.o
- 将汇编语言变成二进制
链接
拓展
Linux下多文件编译运行