概述
个人笔记
预处理->编译->汇编->连接
C语言编译过程分成四个步骤:
• 1、由.c文件到.i文件,这个过程叫预处理
• 2、由.i文件到.s文件,这个过程叫编译
• 3、由.s文件到.o文件,这个过程叫汇编
• 4、由.o文件到可执行文件,这个过程叫链接
一、预处理
(1)将所有的#define删除,并且展开所有的宏定义。说白了就是字符替换
(2)处理所有的条件编译指令,#ifdef #ifndef #endif等,就是带#的那些
(3)处理#include,将#include指向的文件插入到该行处,展开头文件
(4)删除所有注释
(5)添加行号和文件标示,这样的在调试和编译出错的时候才知道是是哪个文件的哪一行
(6)保留#pragma编译器指令:其他以#开拓的都是预编译指令,但是这个指令例外,此为编译器指示字,所以此步骤需要保留,关于此指示字的具体用法,在后面的内容将会详细讲解。
二、编译
编译过程一般包含:
(1)词法分析
(2)语法分析
(3)语义分析
(4)源代码优化
(5)目标代码生成
(6)目标代码优化
编译就是将 高级语言 翻译为 汇编语言的过程。并且在该过程中相关优化代码。
三、汇编
汇编将 汇编语言 转变成 机器语言,生成目标文件。
每一个汇编语句几乎都对应一条机器指令。根据汇编指令和机器指令的对照表一一翻译即可。
目标文件由段组成。通常一个目标文件中至少有两个段:
代码段 该段中所包含的主要是程序的指令。该段一般是可读和可执行的,但一般却不可写。
数据段 主要存放程序中要用到的各种全局变量或静态的数据。一般数据段都是可读,可写,可执行的。
四、连接
最后的连接阶段,将所有的 目标文件 和 需要的库连接,生成可执行文件。
链接分为静态链接和动态链接。
最后
以上就是甜蜜金毛为你收集整理的MCU编译过程的全部内容,希望文章能够帮你解决MCU编译过程所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复