【问题标题】:ELF format: is ELF a subset of .o/.so or is ELF basically the entire .o/.so?ELF 格式:ELF 是 .o/.so 的子集还是 ELF 基本上是整个 .o/.so?
【发布时间】:2016-07-07 03:55:03
【问题描述】:

我目前正在研究 ELF 格式。我想确认一下我认为正确的事情。

ELF是一种格式,它代表Executable and linkable format。在 linux 中,一切都是 ELF 格式。

当使用 gcc 编译带有 -c 和 -fPIC 文件的代码时,它会将代码转换为 ELF 格式的 .o 文件。

如果我说 .o/.so 和 linux 可执行文件是 ELF 文件是否正确?还是 ELF 在 .o/.so 文件中?换句话说,ELF 是 .o/.so 的子集还是 ELF 基本上是整个 .o/.so?

我想确认这一点,因为我想确保我理解这一点。抱歉问了一个愚蠢的问题。

【问题讨论】:

  • 这不属于 Stack Overflow
  • 标题是你如何推销你的问题。这样,很难得到好的答案
  • @CharlieFish 顺便问一下,为什么这不属于 SO?
  • @Amadeus 我不知道这与编程有什么关系。可能是 UNIX Linux Stack Exchange 站点。也许……
  • @Amadeus 我想也许它在某些层面上确实如此。我认为这至少有点牵强。毫无疑问,您对标题的看法是好的。

标签: linux elf


【解决方案1】:

如果我说 .o/.so 和 linux 可执行文件是 ELF 文件是否正确?还是 ELF 在 .o/.so 文件中?换句话说,ELF 是 .o/.so 的子集还是 ELF 基本上是整个 .o/.so?

是的。目标文件 (.o)、共享库 (.so) 和可执行文件是四种 ELF 文件类型中的三种。 (第四类是核心文件——崩溃进程状态的转储,有时用于事后调试。)

所有四种类型都使用相同的通用格式,但特定于它们的类型会有一些差异。例如,可执行文件通常会有一个入口点,而目标文件和共享库则没有。

【讨论】:

    猜你喜欢
    • 2011-12-22
    • 2014-02-12
    • 2021-09-04
    • 2013-02-15
    • 1970-01-01
    • 2012-10-01
    • 2011-03-07
    • 2011-11-27
    • 1970-01-01
    相关资源
    最近更新 更多