使用gcc编译程序时,编译工程分为4个阶段:
(1)预处理:(Pre-Processing)
(2)编译:(Compiling)
(3)汇编:(Assembling)
(4)链接:(linking)
若一个名为hello.c的文件,其内容为:
#include <stdio.h> int main() { printf(" Bettergoal, Better life! /n"); return 0; }
1.在预处理阶段主要是处理源文件中的#ifdef、#include和#define预处理命令。该阶段会生成一个中间文件*.i
2.在编译阶段,输入的是中间文件*.i,编译后生成汇编语言文件*.s。这个阶段对应的gcc命令如下所示:
3.在汇编阶段,将输入的汇编文件*.s转换成二进制机器代码*.o,这个阶段对应的gcc命令如下所示:
4.在链接阶段,将输入的二进制机器代码文件*.o(与其他机器代码文件和库文件)汇集成一个可执行的二进制代码文件。
对应以上四个阶段,直接一个命令
gcc hello.c -o hello
参考:https://blog.csdn.net/u013457167/article/details/51160575