GCC编译阶段包括四个过程。 1、预编译 2、编译 3、汇编 4、链接 通过一个简单的例子来逐步展开每一个过程中的详细情况。 预编译阶段预编译阶段主要处理源文件中的以“#”开始的预编译指令。比如“#include”、“#d…
编译(Compiling):(1)编译器接受预处理后的代码并进行词法分析、语法分析以及类型检查。它将C源代码翻译成汇编语言,生成一个汇编代码文件。这个汇编代码包含了计算机能够理解的低级指令,以及相关的注释。汇编代码文件通常具有 .s 扩展名。(2)单独执行编译的命令是 gcc,它将中间文件编译成汇编代码并生成汇编文件。
gcc main.c sub1.c -o main 如果同时处理的文件不止一个,GCC 仍然会按照预处理、编译和链接的过程依次进行。如果深究起来,上面这条命令大致相当于依次执行如下三条命令: gcc -c main.c -o main.ogcc -c sub1.c -o sub1.ogcc main.o sub1.o -o main 检错 gcc -pedantic main.c -o main -pedant...
1、预处理 gcc macro01.c -o macro01.i -E 2、编译 gcc macro01.i -o macro01.s -S 3、汇编 gcc macro01.s-o macro01.o-C 查看lef文件,重定位文件,可以看到上一节图片的内容 readelf macro01.o-a 4、链接 gcc macro01.o -o macro01 -lc -lgcc-lc:链接标准C库-lgcc:链接gcc库...
gcc编译过程 Gcc的编译流程分为了四个步骤,分别为:· 预处理(Pre-Processing):把"include"的文件拷贝到要编译的源文件中、用实际值替代"define"的文本。、在调用宏的地方进行宏替换。· 编译(Compiling):把预处理好的代码转化成汇编语言,进行语义语法分析,若有错,则报错 · 汇编(Assembling):把...
gcc编译 分步处理 一、预处理 二、编译 三、汇编 四、链接 一步到位 多模块编译 一次性编译: 独立编译: C源文件到可执行文件共经历了4个过程。在使用GCC编译程序时,编译过程可以被细分为四个阶段,包括预处理、编译、汇编、链接。 分步处理 一、预处理 ...
一、gcc编译过程 gcc -E hello.c -o hello.s //预处理 gcc -S hello.s -o hello.i //编译 gcc -c hello.i -o hello.o //汇编 gcc hello.o -o hello //链接 1)预处理,C编译器对各种预处理命令进行处理,包括文件包含、宏定义的扩展、条件编译的选择等; ...
gcc编译过程的四个阶段 1. 预处理(Preprocessing): 预处理是编译过程的第一阶段。预处理器负责对原始源文件进行处理,主要完成以下几个任务: -处理宏定义:预处理器会将源文件中的宏定义展开为相应的代码片段,并将其保存在一个临时文件中。 -处理条件编译指令:预处理器会根据条件编译指令的结果决定是否包含或排除...
在链接阶段,GCC将编译生成的目标文件和系统库文件进行合并,生成最终的可执行文件。这个过程是由ld(Linker)来完成的。 链接阶段的主要过程包括以下几个步骤。 1.符号解析:将目标文件中引用的符号(如函数、变量)与定义的符号进行匹配,确定其在内存中的地址。 2.重定位:将目标文件中的相对地址转换为绝对地址,以保证程...