gpt4 book ai didi

gcc - 了解 gcc 缩写

转载 作者:行者123 更新时间:2023-12-01 12:20:05 29 4
gpt4 key购买 nike

我刚刚查看了下面列出的 gcc-arm-none-eabi 编译器二进制文件,但我真的不知道所有使用的缩写。我想知道哪个二进制文件是预处理器、链接器、编译器等等...

$ ls /opt/gcc-arm-none-eabi-5_4-2016q3/bin/
arm-none-eabi-addr2line
arm-none-eabi-ar
arm-none-eabi-as
arm-none-eabi-c++
arm-none-eabi-c++filt
arm-none-eabi-cpp
arm-none-eabi-elfedit
arm-none-eabi-g++
arm-none-eabi-gcc
arm-none-eabi-gcc-5.4.1
arm-none-eabi-gcc-ar
arm-none-eabi-gcc-nm
arm-none-eabi-gcc-ranlib
arm-none-eabi-gcov
arm-none-eabi-gcov-tool
arm-none-eabi-gdb
arm-none-eabi-gdb-py
arm-none-eabi-gprof
arm-none-eabi-ld
arm-none-eabi-ld.bfd
arm-none-eabi-nm
arm-none-eabi-objcopy
arm-none-eabi-objdump
arm-none-eabi-ranlib
arm-none-eabi-readelf
arm-none-eabi-size
arm-none-eabi-strings
arm-none-eabi-strip

我只能猜测:gcc 是编译器? ld 是链接器?所有这些二进制文件的确切用途是什么?

最佳答案

领先的'arm-none-eabi'是编译器的类型。这称为元组,并指定为配置“前缀”。许多二进制文件可能是链接或调用另一个二进制文件 (gcc) 的短包装脚本。还有一些名称只是为了防止您有同名的现有系统二进制文件或安装了多个 gcc。

您可以通过对程序名称运行 man 命令来找到此信息。简而言之,

  • addr2line - 将地址(十六进制)转换为代码行号。
  • ar - 静态库(或存档)工具。
  • 作为 - 汇编程序
  • c++ - C++ 前端
  • c++filt - 将经过修饰的名称转换为带有原型(prototype)的函数。
  • cpp - 仅预处理器。
  • elfedit - elf header 操作。
  • g++ - 带有 gnu 扩展的 C++。
  • gcc - 标准二进制文件(给定的选项可以与包装器执行相同的操作)。
  • gcc-5.4.1 - 安装了多个 GCC 的系统的全名。
  • gcc-ar - 在多个“ar”的情况下重命名。
  • gcc-nm - 在多个“nm”的情况下重命名。
  • gcc-ranlib - 在多个“ranlib”的情况下重命名。
  • gcov - 代码覆盖率
  • gcov-tool - 代码覆盖率
  • gdb - 调试器
  • gdb-py - 更精简的调试器
  • gprof - 调用图表/分析器。
  • ld - 链接器(很可能是 gold)。
  • ld.bfd - 具有更多功能的老式链接器;对于大型 C++ 项目来说要慢得多。
  • nm - 以二进制显示“名称”。
  • objcopy - 操作二进制文件(部分)。
  • objdump - 关于二进制文件的信息。
  • ranlib - 生成库索引。
  • readelf - 有关 ELF 二进制文件的信息。
  • size - 程序部分大小
  • strings - 将所有字符串转储到二进制文件中。
  • strip - 从二进制文件中删除调试信息。

作为一个概念,名称“gcc-ar”和“ar”在物理上是相同的。但是,路径中可能存在另一个“ar”(Solaris 或其他 Unix 系统),并且“gcc-ar”名称可用于获取特定于 gcc 的“ar”;所有“gcc-XXX”的东西都是针对这个用例的。

关于gcc - 了解 gcc 缩写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45095628/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com