什么是 GCC 工具链?

Posted

技术标签:

【中文标题】什么是 GCC 工具链?【英文标题】:What is a GCC toolchain? 【发布时间】:2018-10-22 18:44:06 【问题描述】:

在哪些方面可以成为C/程序集/对象/可执行编译器的例子?

我想要比***提供的更多信息。 另外,如果您可以链接一些我可以找到更多相关信息的来源,那就太好了。

【问题讨论】:

【参考方案1】:

来自Wiktionary,工具链是:

一组用于软件开发的工具,通常按顺序使用,以便一个工具的输出包含下一个工具的输入。

GCC 是 GNU 编译器集合;即一组来自 GNU 的不同语言的编译器。来自official webpage:

GNU 编译器集合包括 C、C++、Objective-C、Fortran、Ada 和 Go 的前端,以及这些语言的库(libstdc++,...)。

因此,GCC 工具链是一组应用程序和库,用于编译用多种语言编写的程序。例如,对于 C 和 C++ 语言,它包括以下工具:

cpp 预处理器 gcc C 编译器 g++ C++ 编译器 gcov 测试覆盖程序

以及随附的库,例如:

libbacktrace 符号回溯生产者 libquadmath 四精度数学库 libstdc++-v3 C++ 标准库

现在,当有人提到 GCC 工具链时,通常他们也隐含地提到其他实用程序,这些实用程序可能不是来自 GCC 的项目/存储库,但通常是开发所必需的。例如,像这样的工具:

ar 档案操作程序 as 汇编器 c++filt C++ 拆解器 ld 链接器 nm 目标文件符号列表 objdump 目标文件信息转储器

如果您使用的是来自 GNU 的这些工具的实现,那么您使用的是 GNU Binutils 项目:

GNU Binutils 是二进制工具的集合。

【讨论】:

在工具链中添加调试器是否正确?所以在这种情况下,gdb 在 objdump 之后 @Mondo-Cane 在扩展定义中(在实践中使用),当然!事实上,许多编译器都带有调试器。

以上是关于什么是 GCC 工具链?的主要内容,如果未能解决你的问题,请参考以下文章

2019年7月18日星期四(交叉工具链)

gcc 工具链源码安装

什么是交叉工具链

gcc工具链简述

如何构建MIPS交叉编译工具链

更换gcc工具链