gcc中预编译(预处理)、编译、汇编、链接
来源:互联网 发布:adams软件下载 编辑:程序博客网 时间:2024/06/06 03:48
gcc中预编译、编译、汇编、链接
一、预编译
操作步骤:gcc -E test.c -o test.i
作用:处理关于 “#” 的指令
(1)删除#define,展开所有宏定义。例#define portnumber 3333
(2)处理条件预编译 #if, #ifdef, #if, #elif,#endif
(3)处理“#include”预编译指令,将包含的“.h”文件插入对应位置。
(4)删除所有注释/**/,//。
(5)添加行号和文件名标识,比如:#2 "hello.c" 2,以便于编译时编译器产生调试用的行号信息以及用于编译时产生编译错误或警告时能够显示行号。
(6)保留所有的#pragma编译器指令,因为编译器需要它们。
二、编译
操作步骤:gcc -s test.c -o test.s
作用:
1.词法分析
2.语法分析
3.语义分析
4.产生相应的汇编代码文件
三、汇编
将编译完的汇编代码文件翻译成机器指令,并生成可重定位目标程序的.o文件,该文件为二进制文件,字节编码是机器指令。
操作步骤:gcc -c test.c -o test.o
作用:汇编器是将汇编代码转变成可以执行的指令,生成目标文件。
四、链接
通过链接器将一个个目标文件(或许还会有库文件)链接在一起生成一个完整的可执行程序。
操作步骤:gcc hello.o -o hello
作用:获得目标代码后,但是里面的各个地址还没有确定,空间还没有分配。
链接过程主要包括:地址和空间的分配,符号决议和重定位。
本篇博文写的稍有点浅显,懂就行了……因为小女子只懂这么多了嘿嘿
阅读全文
1 0
- gcc中预编译(预处理)、编译、汇编、链接
- gcc——预处理(预编译),编译,汇编,链接
- C/C++中预编译(预处理)、编译、汇编、链接
- GCC编译过程:预处理-编译-汇编-链接
- GCC编程过程:预处理-编译-汇编-链接
- gcc预处理、编译、汇编和链接详解
- gcc预处理、编译、汇编、链接详解
- 预编译,编译,汇编,链接
- GCC编译的背后( 预处理和编译 汇编和链接 )
- GCC编译的背后( 预处理和编译 汇编和链接)
- GCC编译的背后( 预处理和编译 汇编和链接 )
- gcc 从语言编译全过程 预处理---->编译---->汇编----->链接
- GCC编译的背后( 预处理和编译 汇编和链接 )
- GCC编译的背后( 预处理和编译 汇编和链接 )
- gcc编译的背后(预处理、编译、汇编和链接) 一
- GCC编译的背后( 预处理和编译 汇编和链接 )
- gcc 编译的四大过程(预处理-编译-汇编-链接 )
- gcc 从语言编译全过程 预处理---->编译---->汇编----->链接
- Hive创建数据库(不用区分大小写)
- zookeeper Windows安装及配置
- Nginx自定义ETag算法
- Maven向Nexus发布代码
- 使用python3.6爬取笔趣阁的小说
- gcc中预编译(预处理)、编译、汇编、链接
- ceshi
- 【Maven】安装配置
- 微信小程序开发连接豆瓣的api时出线400错误的解决办法
- 浅谈HTTP中Get与Post的区别
- Mysql 查看数据库表大小
- 任学堂:程序员编程最常用的8大工具,你用过几个?
- 对进程的操作
- 【Swoole】用swoole简单实现MySQL连接池