3。2 Gcc和Gdb编译调试技术

3。2。1 Gcc编译技术

Gcc是由Gnu开发的编程语言编译器,原本作为Gnu操作系统的官方编译器,现在已被大多数类Unix操作系统采纳为标准的语言编译器[9]。Gcc的外部接口像一个的Unix编译器,使用者在命令列下键入gcc和程序名,以及命令参数,方便决定每个输入的档案使用的语言编译器,并为输出程序码调用合适此硬件平台的组合语言编译器,而且选择地执行连接器以产生可执行的程序[10]。

传统意义上的编译程序分为两部分--编译和链接。而Gcc在编译时要经历预处理,编译,汇编和链接四个阶段[11]:来:自[优E尔L论W文W网www.youerw.com +QQ752018766-

(1)预处理阶段

处理#include和#define是预处理阶段的主要目标,把原本包含在#include里的。h文件插入进#include代码所在的位置,把在程序中用到的#define宏定义用确切的字符串替代,可以用-E命令要求gcc只进行到预处理阶段而不开始往后的三个阶段,如命令gcc -E test。c -o test。i,gcc会对test。c进行预处理产生test。i文件, -E命令告诉gcc只进行预处理阶段,-o命令告诉gcc输出文件为test。i,当然也可以选择test。i为其它名字,如test。i,但后缀名一定要是。i,因为是约定俗成的规则,假如省略掉上面命令中的-o test。i的话,gcc也会依照输入文件test。c把输出文件的名字命名为test。i。这个阶段只能进行。c类型的文件处理。

 (2)编译阶段

 编译阶段是所有处理阶段中最重要的阶段,在这个阶段中首先gcc会检查语法然后把由上一阶段处理生成的*。i编译成为*。s文件。可以用这样的命令告诉gcc进行处理,gcc -S test。i -o test。s,-S命令意思是使gcc把test。i编译成为。s文件,以上这两个处理步骤的输出文件类型都是文本文件,可以使用文本工具阅读这些处理后的文件。在这个阶段。c和。i类型的文件都可以被处理。

上一篇:MATLAB车牌字符识别系统设计+程序
下一篇:基于IOS电商客户端的设计与实现

群体智能算法求解阻塞流水车间调度问题研究

jsp+sqlserver水泵调度管理系统设计+ER图

Mesos分布式系统中资源调度算法研究

peersim覆盖网络中的QoS保证调度算法

Zookeeper大数据平台分布式...

出租车拼车系统设计

电梯运行调度控制器仿真系统实现

张洁小说《无字》中的女性意识

老年2型糖尿病患者运动疗...

互联网教育”变革路径研究进展【7972字】

我国风险投资的发展现状问题及对策分析

安康汉江网讯

网络语言“XX体”研究

ASP.net+sqlserver企业设备管理系统设计与开发

新課改下小學语文洧效阅...

LiMn1-xFexPO4正极材料合成及充放电性能研究

麦秸秆还田和沼液灌溉对...