在当今这个时代,我们有着各种各样非常强大的集成开发工具,得益于它们那些强大的诸如符号解析,引用构建,代码补全,一键式编译,类库支持等等功能,我们可以从工程本身的结构中抽身出来,专注于业务和功能。但是,不好的一点在于,对于很多新手来说,IDE便成为了一个夹在源代码和可执行文件中间的黑盒,那些被隐藏的处理一旦出现了错误,他们往往不知道如何去解决这些问题。
以下面这段几乎每个程序员都能闭眼写出的HelloWorld而言,在linux下当我们执行 "gcc Hello.c -o Hello"后,最终便成生了名为Hello的可执行程序。
#include<stdio.h>
int main()
{
printf("Hello World!\n");
return 0;
}
事实上,gcc的上述处理其实可以分解为4个步骤,预处理,编译,汇编,链接,如下图所示:
1.预处理
预处理其实也可以使用gcc命令来单独完成,对于上述编译链接过程,第一步预处理其实相当于执行了如下命令:
gcc -E hello.c -o