初始GCC编译器之预处理
来源:互联网 发布:远控王远程控制软件 编辑:程序博客网 时间:2024/05/29 08:30
1 GCC简介
目前LInux下最常用的C语言编译器是GNU CC(简称为gcc)是GNU项目中符合ANSI C标准的编译系统,能够编译用C、C++和Object C等语言编写的程序。gcc不仅功能强大,而且可以编译如C、C++、Object C、Java、和Ada等多种语言,而且gcc又是一个交叉平台编译器,它能够在当前CPU平台上为多种不同体系结构的硬件平台开发软件,因此尤其适合在嵌入式领域的开发编译.
在一种计算机环境中运行的编译程序,能编译出在另外一种环境下运行的代码,我们就称这种编译器支持交叉编译。这个编译过程就叫交叉编译。 简单地说,就是在一个平台上生成另一个平台上的可执行代码。这里需要注意的是所谓平台,实际上包含两个概念:体系结构(Architecture)、操作系统(Operating System)。同一个体系结构可以运行不同的操作系统;同样,同一个操作系统也可以在不同的体系结构上运行。举例来说,我们常说的x86 Linux平台实际上是Intel x86体系结构和Linux for x86操作系统的统称;而x86 WinNT平台实际上是Intel x86体系结构和Windows NT for x86操作系统的简称。
2 GCC编译程序的四个阶段
.预处理(Pre-Processing);
.编译(compiling);
.汇编(Assembing);
.链接(Linking)。
1>预处理阶段
预处理阶段完成头文件替换,宏替换,条件编译。
Ⅰ.头文件替换
首先用熟悉的编辑器输入test.c所示代码
输入预处理命令,生成test.i文件。
打开test.i发现文件头已经展开,截取一部分如下。
Ⅱ.宏替换
将text.c修改为如下程序
输入预处理命令打开生成的test.i发现文件完成了头文件展开和宏替换,截取最后部分如下。
Ⅲ条件编译
将test.c文件修改如下
输入预处理命令,打开生成的test.i文件发现头文件展开,宏替换和条件编译,截取最后部分如下。
2>编译阶段
输入编译命令
语法检查,生成.o文件。
3>汇编阶段
输入汇编命令
生成 .s文件
4>链接阶段
输入命令
链接阶段的任务就是把程序中所有的目标文件和所需的库文件链接到一起,最终生成一个可以执行的文件,称为可执行文件。执行该文件就可以得到test文件的运行结果。
- 初始GCC编译器之预处理
- gcc 编译器之选项控制预处理器 Options Controlling the Preprocessor
- 编译器之GCC命令
- Linux 编译器之 GCC
- Linux 之gcc编译器
- gcc/g++等编译器 编译原理: 预处理,编译,汇编,链接
- 初识GCC编译器之链接
- 编译器预处理
- gcc预处理
- GCC编译器之printf小BUG
- Linux开发工具之编译器gcc
- 嵌入式Linux开发工具之gcc编译器
- 嵌入式Linux开发工具之gcc编译器
- Linux开发工具之gcc编译器
- gcc编译器
- gcc编译器
- Gcc编译器
- 编译器GCC
- 算法的时间复杂度和空间复杂度
- 【HDU4392】【反素数强大的模版 java或者C++】
- LeetCode No.347 Top K Frequent Elements
- 二维数组奇数行和偶数行排序
- Cookie练习之记录访问时间
- 初始GCC编译器之预处理
- ubuntu中为软件制作桌面启动项
- Java的面向对象特征
- Oracle学习笔记(最重要的是PL/SQL编程)
- 设置tomcat启动时间,解决tomcat服务器启动超时问题
- Java学习之类成员变量的作用域
- UBUNTU亮度调节无效的解决方法
- 贴吧百度贴吧伪活批量注册_月版 分析
- 重新加密的一个文件