应用简介
GNU编译器是一款非常强大并且好用的编程语言编译器软件,是一套以 GPL 及 LGPL许可证所发行的自由软件,亦是自由的类Unix 及苹果计算机 Mac OS X 操作系统的标准编译器,它原本只能处理 C语言,但其很快地扩展,变得可处理 C++。之后也变得可处理 Fortran、Pascal、Objective-C、Java, 以及 Ada 与其他语言。
【软件功能】
1、GNU编译器以GPL及LGPL许可证所发行的自由软件;
2、既能处理C语言,也能处理C++;
3、支持Fortran、Pascal、Objective-C、Java,以及Ada与其他语言;
4、gcc编译器支持跨windows、mac、linux等平台;
5、可以透支和保存文件;
6、可以解决一个共同的碰撞;
7、可以进行解析器的越界。
【软件结构】
GNU的外部接口长得像一个标准的Unix编译器。使用者在命令列下键入GNU之程序名,以及一些命令参数,以便决定每个输入档案使用的个别语言编译器,并为输出程序码使用适合此硬件平台的组合语言编译器,并且选择性地执行连接器以制造可执行的程序。每个语言编译器都是独立程序,此程序可处理输入的原始码,并输出组合语言码。
全部的语言编译器都拥有共通的中介架构:一个前端解析符合此语言的原始码,并产生一抽象语法树,以及一翻译此语法树成为GNU的暂存器转换语言〈RTL〉的后端。编译器最佳化与静态程序码解析技术(例如FORTIFY_SOURCE,一个试图发现缓冲区溢位〈buffer overflow〉的编译器)在此阶段应用于程序码上。最后,适用于此硬件架构的组合语言程序码以Jack Davidson与Chris Fraser发明的算法产出。几乎全部的GNU都由C写成,除了Ada前端大部分以Ada写成。
【基本规则】
GNU所遵循的部分约定规则:
.c为后缀的文件,C语言源代码文件;
.a为后缀的文件,是由目标文件构成的档案库文件;
.C,.cc或.cxx 为后缀的文件,是C++源代码文件且必须要经过预处理;
.h为后缀的文件,是程序所包含的头文件;
.i 为后缀的文件,是C源代码文件且不应该对其执行预处理;
.ii为后缀的文件,是C++源代码文件且不应该对其执行预处理;
.m为后缀的文件,是Objective-C源代码文件;
.mm为后缀的文件,是Objective-C++源代码文件;
.o为后缀的文件,是编译后的目标文件;
.s为后缀的文件,是汇编语言源代码文件;
.S为后缀的文件,是经过预编译的汇编语言源代码文件。