首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >理解gcc的缩略语

理解gcc的缩略语
EN

Stack Overflow用户
提问于 2017-07-14 05:54:48
回答 1查看 853关注 0票数 3

我只是看看gcc手臂-无eabi编译器二进制,其中列出了下面,但我真的不知道所有使用的缩写。我想知道哪个二进制是预处理器、链接器、编译器等等.

代码语言:javascript
复制
$ 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是链接器?这些二进制文件的确切用途是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-07-14 13:19:40

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

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

  • addr2line -将地址(十六进制)转换为代码行号.
  • ar -静态库(或归档)工具。
  • 作为一个汇编程序
  • c++ - C++前端
  • c++filt -将一个损坏的名称转换为带有原型的功能。
  • cpp -只有预处理程序。
  • 精灵-精灵头操纵。
  • 带有gnu扩展的g++ - C++。
  • gcc -标准二进制(给定的选项可以做同样的包装)。
  • gcc-5.4.1 -系统的全名,具有多个GCC安装。
  • gcc在多重“ar”的情况下改名。
  • gcc-nm -在多重'nm‘的情况下改名。
  • gcc-兰利卜-改名在多个'ranlib‘。
  • gcov代码覆盖率
  • gcov-工具代码覆盖率
  • gdb -调试器
  • gdb-py -更小的调试器
  • 调用图/分析器。
  • 链接器(最有可能是黄金)。
  • ld.bfd --一个更老的样式链接器,还有一些特性;对于大型C++项目来说,要慢得多。
  • nm -在二进制文件中显示“名称”。
  • objcopy -操作二进制文件(部分)。
  • 关于二进制文件的信息。
  • ranlib -生成一个库索引。
  • 可读性-关于ELF二进制文件的信息。
  • 尺寸-程序区段大小
  • 字符串-转储二进制文件中的所有字符串。
  • 从二进制文件中删除调试信息。

作为一个概念,'gcc-ar‘和'ar’在物理上是相同的。然而,路径中可能存在另一个“ar”( Solaris,或其他Unix系统),“gcc -ar”的名称可以用来获取gcc的“ar”;所有的“”都是用于这个用例的。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45095628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档