【发布时间】:2021-05-10 04:10:06
【问题描述】:
链接器可以输出 ELF 和 MAP 文件。这些文件在嵌入式系统领域尤其重要,因为 ELF 文件通常用于读取变量或函数的地址。此外,ELF 文件被不同的嵌入式测量或分析工具使用。
当我打开一个 MAP 文件时,我可以在其中看到每个全局变量和每个外部函数的以下信息:分配的地址、符号名称、分配的字节、内存单元和内存部分。
另一方面,一旦我打开 ELF 文件,它就是一个二进制文件,人类不可读。但是,我使用的一些工具能够读出并解释它。这些工具可以解释ELF文件,获取变量/函数的符号名及其地址信息,甚至显示函数原型。
据我了解,ELF 和 MAP 文件基本上包含相同的信息,只是第一个是二进制文件,后一个是文本文件。 那么从内容的角度来看,这两个文件之间的实际区别是什么?
提前谢谢你!
【问题讨论】:
-
鉴于任何可能回答的人都必须隐含地知道这些文件是什么,您真的不需要尝试解释或猜测。简短的问题相当长。
-
@Clifford 这是一个很好的观点。然而,虽然提出带有额外信息的“大声思考”问题可能会使问题更长,但另一方面,它也可能导致提问者做出额外的结论。因此,这可能会导致更精确的最终问题。
-
好的,可能。这无疑使我解决了明显的误解,而不仅仅是差异。