什么是 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 工具链?的主要内容,如果未能解决你的问题,请参考以下文章