² cpp GNU预处理器,主要用于扩展用户源程序的头文件和宏定义。cpp是GNU C编译器的预处理器。cpp是一个宏指令处理器,GNU C编译器在编译前自动使用cpp对用户程序进行转换。cpp之所以被称为宏指令处理器是因为它允许用户定义宏指令(长结构的简写)。
² gcc 符合ISO标准的C编译器
² g++ 基本符合ISO标准的C++编译器
² gcj 是gcc的java前端,可以生成执行速度更快的二进制本地执行码,而不是java byte code。gcj为把java程序编译成机器代码提供了试验性的支持。要做到这点,用户还需安装相关的java运行时库。
² gnat 是gcc的GNU ADA95前端。
² as GNU汇编器,主要用于把汇编代码转换成二进制代码,并存放到一个object文件中。
² ld GNU链接器,主要用于确定相对地址,把多个object文件、起始代码段、库等链接起来,并最终形成一个可执行文件。
² addr2line 把执行文件中的地址影射到源文件中的对应行。
² ar 创建归档文件、修改/替换库中的object文件,向库中添加提取object文件。
² c++file 解码C++符号名
² nm 列出object文件中的符号
² objcopy 复制和转换object文件
² objdump 用来显示对象文件的信息
² ranlib 根据归档文件中内容建立索引
² readelf 显示ELF格式执行文件中的各种信息
² size 显示object文件和执行文件各节和总的大小
² strings 显示文件中可以打印的字符(基本上是英文字符串)
² strip 去掉执行文件中多余的信息(如调试信息等),可见效执行文件的大小
² gprof 用来显示调试图表档案数据
² gdb GNU调试器。允许调试用C\C++和其他语言编写的应用程序。它的基本运行方式是在shell环境下用命令方式进行调试程序和显示数据。如果加上一些图形前端(如DDD等软件),则可以在一个更方便的图形环境下调试程序。
² make 用来控制可执行程序生成过程,从其他其他的源程序中生成可执行文件的GNU工具。允许用户生成和安装软件包,而无须了解生成、安装软件包的具体执行过程。
² diff/diff3/sdiff 是比较文本差异的工具,也可以用来产生补丁。
² patch 是补丁安装程序,可根据diff生成的补丁来更新程序
² CVS 是一个版本控制系统。它能够记录文件的修改历史(通常但并不总是包括源码)。CVS只存贮版本间的区别而不是你创建文件的每一个版本。CVS还保留一个记录改变者、改变时间以及改变原因的日志。CVS对于管理发行的每一个版本和控制在多个作者间同时编辑源码文件很有帮助。CVS为一个层次化的目录提供版本控制,目录由修订控制的文件组成,而不是在一个目录中为一组文件提供版本控制。这些目录和文件可以被合并起来构成一个软件发行版本。