Linux ELF格式:ELF是.o/.so的子集还是ELF基本上是整个.o/.so?

Linux ELF格式:ELF是.o/.so的子集还是ELF基本上是整个.o/.so?,linux,elf,Linux,Elf,我目前正在研究ELF格式。我想确认一些我认为正确的事情 ELF是一种格式,它代表可执行和可链接的格式。在linux中,所有内容都是ELF格式的 当使用gcc编译带有-c和-fPIC文件的代码时,它会将代码转换为ELF格式的.o文件 如果我说.o/.so和linux可执行文件是ELF文件,对吗?或者ELF是否在.o/.so文件中?换句话说,ELF是.o/.so的子集还是基本上是整个.o/.so 我想确认这一点,因为我想确保我理解这一点。抱歉问了个愚蠢的问题 如果我说.o/.so和linux可执行文

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

ELF是一种格式,它代表可执行和可链接的格式。在linux中,所有内容都是ELF格式的

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

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

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

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

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


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

这不属于堆栈溢出。标题是如何推销你的问题。这样,就很难做好answer@CharlieFish顺便问一下,为什么这不属于SO?@Amadeus我不知道这和编程有什么关系。可能是UNIX Linux堆栈交换站点。也许…@Amadeus我想也许在某些层面上是这样的。我认为这至少有点牵强。你关于标题的观点肯定是好的。