Gcc编译过程详解

 时间:2026-02-14 01:36:04

1、示例程序

vi hello.c并写入程序

Gcc编译过程详解

Gcc编译过程详解

2、预处理

gcc -E hello.c -o hello.i

预编主要前面处理带“#”的指令,如#include、#define等,还要删除注释,添加行号和文件名标识

Gcc编译过程详解

3、编译

gcc -S hello.i -o hello.s

编译过程是把预处理完的文件进行一系列的词法分析、语法分析、语义分析及优化后生产相应的汇编代码文件

Gcc编译过程详解

4、汇编

gcc -c hello.s -o hello.o

将代码转换成机器可以执行的指令

Gcc编译过程详解

5、连接

连接是一个复杂的过程,使用ld指令

ld -static crt1.o crti.o crtbeginT.o hello.o -start -group -lgcc -lgcc_eh -lc -end-group crtend.o crtn.o 

连接的过程包括按序叠加、相似段合并、符号地址的确定、符号解析与重定位、指令修正、全局构造与解析等等

Gcc编译过程详解

6、运行程序

./hello 运行程序,可以看到结构

Gcc编译过程详解

  • 苏式点心蛋黄酥的做法
  • 女人成为母亲的N个理由
  • brightness如何调整图标的大小尺寸?
  • 三十六计手游怎么进行手机认证
  • HTML "计算机输出" 标签
  • 热门搜索
    手抄报怎么画 蛋白质粉怎么吃 december怎么读 煮鸡蛋怎么好剥皮 家庭经济情况怎么写 胎心监护怎么做 苹果手机怎么定位 ins怎么下载 华为手机怎么样 带状疱疹怎么治最好