GNU工具链

💡 原文英文,约400词,阅读约需2分钟。
📝

内容提要

本文介绍了GNU工具链的二进制文件,包括编译器、链接器等,重点讨论了GCC及其前后端组件,以及binutils在对象文件处理和符号管理方面的功能。

🎯

关键要点

  • GNU工具链的二进制文件包括编译器和链接器等。

  • GCC位于/usr/bin,可能会有机器元组的前缀。

  • GCC与binutils有重叠,部分工具是包装器。

  • binutils的功能包括汇编、链接、对象文件处理和符号管理。

  • ld有两种实现:ld.bfd(旧版)和ld.gold(新版,速度更快)。

  • objcopy用于复制和转换对象文件,ar用于处理归档文件。

  • strip用于从对象文件中移除符号和调试信息。

  • GCC的前端程序包括gcc、g++、cpp等。

  • GCC的后端程序位于/usr/lib/gcc/<m>/<v>/,包括cc1和cc1plus等。

  • gprof工具用于性能分析,提供多种功能如归档和显示。

延伸问答

GNU工具链的主要组成部分有哪些?

GNU工具链主要由编译器、链接器和binutils等组成。

GCC的前端程序包括哪些?

GCC的前端程序包括gcc、g++、cpp等。

binutils的主要功能是什么?

binutils的主要功能包括汇编、链接、对象文件处理和符号管理。

ld有哪两种实现?

ld有ld.bfd(旧版)和ld.gold(新版,速度更快)两种实现。

如何使用strip命令?

strip命令用于从对象文件中移除符号和调试信息。

gprof工具的用途是什么?

gprof工具用于性能分析,提供多种功能如归档和显示。

➡️

继续阅读