1.2 GCC的主要特性

本节描述了GCC一些最重要的特性。

首先,GCC是一个可移植的编译器它可以运行在很多平台上,并且可以产生很多不同类型的处理器运行代码。除了支持个人电脑的处理器外还支持微控制器DSPs和64位的CPUs。

GCC支持交叉编译,可以为其他系统生成可执行文件。这样可以为那些不适合运行编译器的嵌入式系统编译程序。GCC使用C语言编写非常重视可移植性并且可以编译自己本身,所以可以很容易移植到新系统上。

GCC有多种语言前端用于解析不同语言所以不同语言的程序可以被编译或者为任何架构交叉编译。例如一个ADA程序可以被编译在一个微控制器上运行或者一个C程序可以被编译在一个超级电脑上运行。

GCC是模块化设计,允许添加模块来支持新语言和架构。添加一个新语言前端可以在任何架构下使用此语言只需要提供必要的运行时环境(例如:库)。相似的添加支持一个新架构则这个架构可以使用所有语言。

最后也是最重要的是GCC是免费软件,在GNU GPL许可证下发布。这意味着你可以自由使用和修改GCC就像所有GNU软件一样。如果你需要支持一个新的CPU,一种新的语言或者一个新的特性你可以自己添加或者雇佣其他人来增强GCC和修复bug如果它对于你的工作非常重要。

你甚至可以自由分享任何你对GCC的强化也可以利用别人对GCC的改进。现今GCC的许多特性都体现了这种自由合作有益于你和任何使用GCC的人。