从gcc探究C语言的编译过程
来源:互联网 发布:软件运营部门 编辑:程序博客网 时间:2024/05/14 10:46
我们都知道,C语言编译的四个步骤:
①预处理 ②编译 ③汇编 ④链接
具体是什么意思呢?我们分开编译就会得到结果
这是一个完整的编译过程,其中test.c和mytest.h是源文件,test.i 是经过预处理之后的代码.
①预处理:预处理包括了宏定义展开、头文件展开、条件编译、删除注释等等,在预处理期不进行语法检查
②编译:检查语法、将预处理之后的文件变成汇编代码
③汇编:将汇编文件转换为二进制代码
④链接:仅仅转换为二进制文件不能运行,就像基因上的启动子和终止子一样,需要链接启动文件等等然后才可以执行
tset.i的内容:
之前是include头文件展开的内容,下面是mytest.h的头文件的展开
static int a = 10;# 3 "test.c" 2void main(void){ printf("helloworld\n");}下面是test.s的汇编代码
.file"test.c".data.align 4.typea, @object.sizea, 4a:.long10.section.rodata.LC0:.string"helloworld".text.globlmain.typemain, @functionmain:.LFB0:.cfi_startprocpushq%rbp.cfi_def_cfa_offset 16.cfi_offset 6, -16movq%rsp, %rbp.cfi_def_cfa_register 6leaq.LC0(%rip), %rdicallputs@PLTnoppopq%rbp.cfi_def_cfa 7, 8ret.cfi_endproc.LFE0:.sizemain, .-main.ident"GCC: (Debian 6.4.0-2) 6.4.0 20170724".section.note.GNU-stack,"",@progbitstest.o 和 test.out都是二进制文件了,这就是gcc编译的全过程.希望能天天进步一点点
阅读全文
1 0
- 从gcc探究C语言的编译过程
- gcc编译C语言程序的执行过程
- C语言再学习 -- GCC编译过程
- GCC之C 语言编译过程
- GCC之C 语言编译过程
- GCC之C 语言编译过程
- gcc 编译.c文件的编译过程
- C语言gcc编译过程以及常用编译选项
- C语言编译过程和Gcc编译参数
- GCC编译c程序的工作过程
- GCC编译hello.c的详细过程
- gcc编译C程序的过程
- gcc编译C语言
- gcc编译c语言的uint问题
- 重学c语言系列一(gcc编译过程)
- 【i.MX283A学习】gcc编译C语言过程
- C语言程序GCC下编译过程透视
- C语言编译的过程
- 到底什么是集群&分布式
- org.hibernate.ObjectNotFoundException: No row with the given identifier exists解决办法
- 2017-12-20php学习基础巩固第二天
- Cookie|Session
- jsp插入图片——撕裂
- 从gcc探究C语言的编译过程
- 浅谈比特币 区块链
- Spring框架回顾 springBoot 火推01
- RocketMQ 使用案例
- ibatis基本环境搭建
- 如何提高python的运行效率/缩短运行时间
- 排序算法总结
- 数据挖掘
- 三、jena解析关于基因的go.owl文件(读取信息)