1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > C语言编译链接生成可执行文件四大步骤:预处理(-E)->编译(-S)->汇编(-c) ->链接

C语言编译链接生成可执行文件四大步骤:预处理(-E)->编译(-S)->汇编(-c) ->链接

时间:2019-09-03 07:27:14

相关推荐

C语言编译链接生成可执行文件四大步骤:预处理(-E)->编译(-S)->汇编(-c) ->链接

文章目录

一、编译过程简介1、预处理器2、编译器3、汇编器二、链接过程简介1、静态链接: 由链接器在链接时将库的内容直接加入到可执行程序中2、动态链接:

一、编译过程简介

编译过程可以分为4部分内容组成预处理器->编译器->汇编器->链接器

1、预处理器

(1)、处理所有的注释,以空格代替(2)、讲所有的#define删除,并且展开所有的宏定义(3)、处理条件编译指令#if,#ifdef、#elif,#else、#endif(4)、处理#include,展开文件包含(5)、保留编译器需要使用#pragma指令预处理指令示例:gcc -E file.c -o file.i

2、编译器

(1)、对预处理文件进行语法分析、词法分析、语义分析语法分析:分析表达式是否遵循语法规则词法分析:分析关键字,标识符,立即数是否合法语义分析:在语法分析基础上进一步分析表达式是否合法(2)、分析结束后进行代码优化生成相应的汇编代码文件编译指令示例:gcc -S file.i -o file.s

3、汇编器

(1)、汇编器将汇编代码转变为机器可以执行的指令,也就是机器指令(2)、每条汇编指令几乎都对应一条机器指令汇编指令示例:gcc - c file.s -o file.o

二、链接过程简介

链接是指将目标文件最终生成可执行文件根据链接方式的不同,链接过程可以分为:1、静态链接:目标文件直接进入可执行文件2、动态链接:在程序启动后才动态加载目标文件链接器的意思:链接器的主要作用是把各个模块之间相互引用部分处理好,使得各个模块之间能够正确的链接

1、静态链接: 由链接器在链接时将库的内容直接加入到可执行程序中

2、动态链接:

(1)、可执行程序在运行时才动态加载库进行连接(2)、库的内容不会进入可执行程序

引用文章:C语言编译和链接过程简介

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。