C/C++中预编译(预处理)、编译、汇编、链接
2017-10-21 18:13
246 查看
[align=center] C/C++中预编译(预处理)、编译、汇编、链接[/align]
[align=center]
[/align]
![](https://img-blog.csdn.net/20171101121829840?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvTU9PTjU1NTU=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
[align=left][/align]
[align=left]
[/align]
一、[b]预编译[/b]
[b][b]读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理[/b][/b]
作用:处理关于 “#” 的指令
(1)删除#define,展开所有宏定义。例#define portnumber 3333
(2)处理条件预编译 #if, #ifdef, #if, #elif,#endif
(3)处理“#include”预编译指令,将包含的“.h”文件插入对应位置。
(4)删除所有注释/**/,//。
二、[b]编译[/b]
作用:
1.词法分析
2.语法分析
3.语义分析
[align=left]4.产生相应的汇编代码文件[/align]
[align=left]
[/align]
三、[b]
a309
汇编[/b]
[b]将编译完的汇编代码文件翻译成机器指令,并生成可重定位目标程序的.o文件,该文件为二进制文件,字节编码是机器指令。[/b]
作用:汇编器是将汇编代码转变成可以执行的指令,生成目标文件。
[align=left]
[/align]
四、[b]链接[/b]
[b][b]通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。[/b][/b]
由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。
例如:某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);
在程序中可能调用了某个库文件中的函数;这些问题,都需要经链接程序的处理才能解决。
链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。
大致经过这几个步骤,一个完整的可执行程序产生了……
[align=left]
[/align]
[align=left]
[/align]
[align=center]
[/align]
[align=left][/align]
[align=left]
[/align]
一、[b]预编译[/b]
[b][b]读取C/C++源程序,对其中的伪指令(以#开头的指令)进行处理[/b][/b]
作用:处理关于 “#” 的指令
(1)删除#define,展开所有宏定义。例#define portnumber 3333
(2)处理条件预编译 #if, #ifdef, #if, #elif,#endif
(3)处理“#include”预编译指令,将包含的“.h”文件插入对应位置。
(4)删除所有注释/**/,//。
二、[b]编译[/b]
作用:
1.词法分析
2.语法分析
3.语义分析
[align=left]4.产生相应的汇编代码文件[/align]
[align=left]
[/align]
三、[b]
a309
汇编[/b]
[b]将编译完的汇编代码文件翻译成机器指令,并生成可重定位目标程序的.o文件,该文件为二进制文件,字节编码是机器指令。[/b]
作用:汇编器是将汇编代码转变成可以执行的指令,生成目标文件。
[align=left]
[/align]
四、[b]链接[/b]
[b][b]通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。[/b][/b]
由汇编程序生成的目标文件并不能立即就被执行,其中可能还有许多没有解决的问题。
例如:某个源文件中的函数可能引用了另一个源文件中定义的某个符号(如变量或者函数调用等);
在程序中可能调用了某个库文件中的函数;这些问题,都需要经链接程序的处理才能解决。
链接程序的主要工作就是将有关的目标文件彼此相连接,也就是将在一个文件中引用的符号同该符号在另外一个文件中的定义连接起来,使得所有的这些目标文件成为一个能够被操作系统装入执行的统一整体。
大致经过这几个步骤,一个完整的可执行程序产生了……
[align=left]
[/align]
[align=left]
[/align]
相关文章推荐
- C/C++程序编译流程(预处理->编译->汇编->链接)细讲
- C++ 预处理、编译、汇编、链接
- C/C++程序编译流程(预处理->编译->汇编->链接)
- C++ 预处理、编译、汇编、链接
- C/C++程序编译流程(预处理->编译->汇编->链接)
- C/C++程序编译流程解析(预处理->编译->汇编->链接)
- 关于gcc编译流程四个步骤的具体分析,预处理、编译、汇编、链接
- 编译系统(预处理、编译、汇编、链接)-详解
- GCC编译的背后( 预处理和编译 汇编和链接 )
- GCC编译的四个过程 预处理 编译 汇编 链接
- gcc预处理、编译、汇编、链接详解
- C++笔记(1): 预处理/编译/汇编/链接
- 预处理,编译,汇编,链接程序的区别
- C++主流预处理,编译和链接过程
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接各步骤详解
- gcc——预处理(预编译),编译,汇编,链接
- C++主流预处理,编译和链接过程
- gcc预处理、编译、汇编和链接详解
- linux预处理、编译、汇编、链接和运行的过程
- Linux开发工具(gcc gdb make shell)——c的预处理、编译、汇编和链接