GCC编译
在linux系统上,从源文件到目标文件的转化是由编译器完成的。
以hello.c程序的编译为例,如下:
gcc -o hello hello.c
在这里,gcc编译器读取源文件hello.c,并把它翻译成一个可执行文件 hello。
这个翻译过程可分为四个阶段逐步完成:预处理,编译,汇编,链接,如下图所示。
在未编译前,hello.c 的源代码如下
#include <stdio.h>
int main()
{
printf("hello, world\n");
}
第一步、预处理阶段
执行命令: gcc -o hello.i -E hello.c
或者:cpp -o hello.i hello.c
(这里cpp不是指的c plus plus,而是预处理器the C Preprocessor)
预处理器cpp根据以字符开头#开头的命令,修改原始C程序。比如hello.c中的第一行为 #include <stdio.h>,预处理器便将stdio.h的内容直接插