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

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

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

【问题讨论】:

    标签: gcc toolchain


    【解决方案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 在扩展定义中(在实践中使用),当然!事实上,许多编译器都带有调试器。
    猜你喜欢
    • 2015-05-30
    • 2012-10-26
    • 1970-01-01
    • 2017-10-11
    • 2020-10-06
    • 1970-01-01
    • 2014-07-03
    • 2014-09-12
    • 2019-06-10
    相关资源
    最近更新 更多