zhcn 编程语言 非公開: 使用的 GCC 组件和软件

使用的 GCC 组件和软件

GCC由许多组件组成。表 1 显示了 GCC 的各个部分,但它们并不总是存在。有些部分与语言相关,因此如果未安装特定语言,相关文件将不会出现在系统上:

表 1:GCC 安装部分
部门解释
由 小码哥发布于在您的 gcc 版本中,默认语言设置为C++ ,并且在链接时自动包含标准 C++ 库。这与 g++ 相同。
铜箔实际的 C 编译器
酷派实际的 C++ 编辑器
集合2不使用GNU链接器的系统必须运行collect2来生成某些全局初始化代码(例如C++构造函数和析构函数)。
配置、设置GCC 源代码树根部的页脚。用于设置配置值和创建GCC编译器所需的make程序的描述文件
crt0.o此初始化和退出代码是为每个系统定制的,并编译到此文件中。该文件链接到每个可执行文件以执行必要的启动和终止例程。
cygwin1.dll Windows 共享库提供的 API 模拟 UNIX 系统调用。
f77该驱动程序可用于 Fortran 编译。
f771实际的 Fortran 编译器
克++在gcc版本中,默认语言设置为C++,链接时自动包含标准C++库。这和c++是一样的。
海湾合作委员会该驱动程序相当于运行编译器和链接器以产生所需的输出。
GCJ该驱动程序用于Java编译。
蚊 1实际的 Ada 编译器
蚊虫结合实现Ada语言绑定的工具
蚊虫链接Ada 语言集成工具
jc1实际的Java编译器
libgcc该库中包含的例程可以链接到实际的可执行程序中,因此作为编译器的一部分包含在内。这些是链接到可执行程序的特殊例程,用于执行浮点运算等基本任务。这些库中的例程通常依赖于平台
库库运行时库包含所有核心 Java 类
库对象所有 Objective-C 程序所需的运行时库
libstdc++ 库包含定义为标准语言一部分的所有 C++ 类和函数的运行时库

表2列出的软件与GCC配合来实现编译过程。有些是基本的(例如 和 Id),而另一些则有用但不是必需的。其中许多工具是各种 UNIX 系统本机的,但大多数都可以通过 GNU 软件包 binutils 获得。

表 2:GCC 使用的软件工具
工具解释
地址2线当指定可执行文件的内部地址时,addr2line 使用文件中的调试信息将该地址转换为源代码文件名和行号。该程序是 binutils 包的一部分
阿尔这是一个通过添加、删除和从档案中提取文件来维护库文件的程序。该工具通常用于创建和管理链接器使用的对象库文档。该程序是 binutils 包的一部分
作为GNU 汇编器。它实际上是一个汇编器家族,因为它可以在各种平台上编译或工作。该程序是 binutils 包的一部分
自动配置生成的 shell 脚本会自动配置源代码包以针对特定版本的 UNIX 进行编译。
C++ 过滤器该程序接受 C++ 编译器翻译的(非重载的)名称,并将该名称转换为其原始形式。该程序是 binutils 包的一部分
F2C Fortran 到 C 的翻译器。不属于海湾合作委员会的一部分
冠状病毒gprof 使用分析工具来确定程序的哪些部分运行时间最长
数据库GNU 调试器,可用于检查正在运行的程序的值和行为
蚊虫GNU 错误跟踪系统。用于跟踪 GCC 和其他 GNU 软件问题的在线系统
通用教授该程序可以监视已编译程序的执行过程,报告程序中每个函数的执行时间,并根据提供的配置文件优化程序。该程序是 binutils 包的一部分
LD GNU 链接器。该程序将目标文件的集合组合成可执行程序。该程序是 binutils 包的一部分
库工具一个基础库,支持 make 程序描述文件中使用的脚本,以简化共享库的使用。
制作一个实用程序,它读取 makefile 脚本,确定需要编辑和链接程序的哪些部分,并发出必要的命令。加载脚本(称为 makefile 或 Makefile)定义文件关系和依赖关系。
非线性变换将可重定位目标文件转换为 NetWare 可加载模块 (NLM)。该程序是 binutils 的一部分
纳米列出目标文件中定义的符号。该程序是 binutils 包的一部分
对象复制将目标文件从一种二进制格式复制并转换为另一种二进制格式。该程序是 binutils 包的一部分
对象转储显示存储在一个或多个目标文件中的各种信息。该程序是 binutils 包的一部分
润肋骨索引已创建并添加到 ar 文档中。 Id 使用该索引来定位库中的模块。该程序是 binutils 包的一部分
对于老鼠Ratfor 预处理器可以由 GCC 启用,但不包含在标准 GCC 发行版中
里德尔夫以 ELF 格式显示目标文件中的信息。该程序是 binutils 包的一部分
尺寸列出目标文件每个部分的名称和大小。该程序是 binutils 包的一部分
细绳浏览所有类型的文件,提取并显示字符串。该程序是 binutils 包的一部分
删除目标文件或文档库中的符号表和调试所需的其他信息。该程序是 binutils 包的一部分
心电图Ratfor 浏览器从文本文件中读取信息并以图形格式显示。尽管 vcg 工具不是 GCC 发行版的一部分,但您可以使用 -dv 选项生成 vcg 可以理解的优化数据格式。
无风的窗口资源文件编辑器。该程序是 binutils 包的一部分
GCC由许多组件组成。表 1 显示了 GCC 的各个部分,但它们并不总是存在。有些部分与语言相关,因此如果未安装特定语言,相关文件将不会出现在系统上:

表 1:GCC 安装部分
部门解释
由 小码哥发布于在您的 gcc 版本中,默认语言设置为C++ ,并且在链接时自动包含标准 C++ 库。这与 g++ 相同。
铜箔实际的 C 编译器
酷派实际的 C++ 编辑器
集合2不使用GNU链接器的系统必须运行collect2来生成某些全局初始化代码(例如C++构造函数和析构函数)。
配置、设置GCC 源代码树根部的页脚。用于设置配置值和创建GCC编译器所需的make程序的描述文件
crt0.o此初始化和退出代码是为每个系统定制的,并编译到此文件中。该文件链接到每个可执行文件以执行必要的启动和终止例程。
cygwin1.dll Windows 共享库提供的 API 模拟 UNIX 系统调用。
f77该驱动程序可用于 Fortran 编译。
f771实际的 Fortran 编译器
克++在gcc版本中,默认语言设置为C++,链接时自动包含标准C++库。这和c++是一样的。
海湾合作委员会该驱动程序相当于运行编译器和链接器以产生所需的输出。
GCJ该驱动程序用于Java编译。
蚊 1实际的 Ada 编译器
蚊虫结合实现Ada语言绑定的工具
蚊虫链接Ada 语言集成工具
jc1实际的Java编译器
libgcc该库中包含的例程可以链接到实际的可执行程序中,因此作为编译器的一部分包含在内。这些是链接到可执行程序的特殊例程,用于执行浮点运算等基本任务。这些库中的例程通常依赖于平台
库库运行时库包含所有核心 Java 类
库对象所有 Objective-C 程序所需的运行时库
libstdc++ 库包含定义为标准语言一部分的所有 C++ 类和函数的运行时库

表2列出的软件与GCC配合来实现编译过程。有些是基本的(例如 和 Id),而另一些则有用但不是必需的。其中许多工具是各种 UNIX 系统本机的,但大多数都可以通过 GNU 软件包 binutils 获得。

表 2:GCC 使用的软件工具
工具解释
地址2线当指定可执行文件的内部地址时,addr2line 使用文件中的调试信息将该地址转换为源代码文件名和行号。该程序是 binutils 包的一部分
阿尔这是一个通过添加、删除和从档案中提取文件来维护库文件的程序。该工具通常用于创建和管理链接器使用的对象库文档。该程序是 binutils 包的一部分
作为GNU 汇编器。它实际上是一个汇编器家族,因为它可以在各种平台上编译或工作。该程序是 binutils 包的一部分
自动配置生成的 shell 脚本会自动配置源代码包以针对特定版本的 UNIX 进行编译。
C++ 过滤器该程序接受 C++ 编译器翻译的(非重载的)名称,并将该名称转换为其原始形式。该程序是 binutils 包的一部分
F2C Fortran 到 C 的翻译器。不属于海湾合作委员会的一部分
冠状病毒gprof 使用分析工具来确定程序的哪些部分运行时间最长
数据库GNU 调试器,可用于检查正在运行的程序的值和行为
蚊虫GNU 错误跟踪系统。用于跟踪 GCC 和其他 GNU 软件问题的在线系统
通用教授该程序可以监视已编译程序的执行过程,报告程序中每个函数的执行时间,并根据提供的配置文件优化程序。该程序是 binutils 包的一部分
LD GNU 链接器。该程序将目标文件的集合组合成可执行程序。该程序是 binutils 包的一部分
库工具一个基础库,支持 make 程序描述文件中使用的脚本,以简化共享库的使用。
制作一个实用程序,它读取 makefile 脚本,确定需要编辑和链接程序的哪些部分,并发出必要的命令。加载脚本(称为 makefile 或 Makefile)定义文件关系和依赖关系。
非线性变换将可重定位目标文件转换为 NetWare 可加载模块 (NLM)。该程序是 binutils 的一部分
纳米列出目标文件中定义的符号。该程序是 binutils 包的一部分
对象复制将目标文件从一种二进制格式复制并转换为另一种二进制格式。该程序是 binutils 包的一部分
对象转储显示存储在一个或多个目标文件中的各种信息。该程序是 binutils 包的一部分
润肋骨索引已创建并添加到 ar 文档中。 Id 使用该索引来定位库中的模块。该程序是 binutils 包的一部分
对于老鼠Ratfor 预处理器可以由 GCC 启用,但不包含在标准 GCC 发行版中
里德尔夫以 ELF 格式显示目标文件中的信息。该程序是 binutils 包的一部分
尺寸列出目标文件每个部分的名称和大小。该程序是 binutils 包的一部分
细绳浏览所有类型的文件,提取并显示字符串。该程序是 binutils 包的一部分
删除目标文件或文档库中的符号表和调试所需的其他信息。该程序是 binutils 包的一部分
心电图Ratfor 浏览器从文本文件中读取信息并以图形格式显示。尽管 vcg 工具不是 GCC 发行版的一部分,但您可以使用 -dv 选项生成 vcg 可以理解的优化数据格式。
无风的窗口资源文件编辑器。该程序是 binutils 包的一部分