GCC由许多组件组成。表 1 显示了 GCC 的各个部分,但它们并不总是存在。有些部分与语言相关,因此如果未安装特定语言,相关文件将不会出现在系统上:
表2列出的软件与GCC配合来实现编译过程。有些是基本的(例如 和 Id),而另一些则有用但不是必需的。其中许多工具是各种 UNIX 系统本机的,但大多数都可以通过 GNU 软件包 binutils 获得。
| 部门 | 解释 |
|---|---|
| 由 小码哥发布于 | 在您的 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线 | 当指定可执行文件的内部地址时,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 包的一部分 |




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

