gcc工作流程讲解 |
您所在的位置:网站首页 › gcc编译过程包括哪四个阶段 › gcc工作流程讲解 |
linux系统中的源文件经过gcc(c文件)/g++(cpp文件)编译器的四个步骤处理,能够生成一个可执行的程序: 当然gcc编译器不能独立完成这四个步骤,而是在内部调用了其他工具,从而完成了整个工作流程。在这其中,编译是最耗时的,因为要逐行检查语法。 那现在通过Linux中的一个cpp文件来了解其中的编译过程。在linux创建一个test.cpp文件
这个阶段会将文件中的头文件展开,宏替换掉,注释去掉,经过(cpp预处理器)预处理后的cpp文件变为一个i文件。 这行代码是将test.cpp预处理后生成的内容输入到test.i文件中,如果这条命令不加上-o test.i的话,那么生成的内容就会输出到终端上,同时也没办法对这些预处理的内容进行后续的处理。 上面是test.i文件,test.pp经过预处理后生成的内容。 2.编译阶段: 预处理后的cpp文件经过gcc编译器的处理,翻译成汇编文件,当然原来的.i文件依然存在。 3.汇编阶段: 在编译阶段生成的汇编文件会经过汇编器(as)的处理,生成二进制目标文件。 4.链接阶段: 链接阶段是将所有相关的目标文件链接起来,形成一个整体,生成一个可执行文件。 无选项链接: 这个命令会把二进制目标文件test.o所需的相关文件链接成一个整体,并在当前文件夹自动生成一个名为a.out的可执行文件。 当然也可以生成指定的可执行文件 运行可执行文件: 当然在日常工作中,我们可以直接将一个源文件直接生成可执行文件: 总结:一个源文件到生成一个可执行文件需要经过四个步骤的处理: 源文件->(预处理).i文件->(编译).s文件->(汇编).o文件->(链接).exe文件。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |