|
|
1
72
这里有两个共同的和相关的符号表含义。 首先,对象文件中有符号表。通常,C或C++编译器将一个源文件编译为.Obj.O.O扩展的目标文件。它包含可执行代码和数据的集合,链接器可以将这些代码和数据处理到工作应用程序或共享库中。对象文件中有一个称为符号表的数据结构,它将对象文件中的不同项映射到链接器可以理解的名称。如果从代码中调用函数,编译器不会将例程的最终地址放在对象文件中。相反,它将一个占位符值放入代码中,并添加一个注释,通知链接器从正在处理的所有对象文件中查找各种符号表中的引用,并将最终位置粘贴在代码中。 第二,共享库或DLL中也有符号表。这是由链接器生成的,用于命名库用户可见的所有函数和数据项。这允许系统进行运行时链接,将对这些名称的打开引用解析为库在内存中的加载位置。 如果你想了解更多,我建议约翰莱文的优秀书籍“链接器和加载器”。 link text |
|
|
2
22
简而言之,它是将变量的名称映射到内存中的地址,包括类型、作用域和大小等元数据。它由编译器使用。 一般来说,这不仅仅是C[++]*。从技术上讲,它并不总是包括直接内存地址。它取决于编译器的目标语言、平台等。 |
|
|
3
13
在Linux中,可以使用以下命令:
列出该对象文件的符号表。 |
|
|
4
8
符号表是程序/单元中的“符号”列表。符号通常是变量或函数的名称。符号表可用于确定内存中变量或函数的位置。 |
|
5
4
退房 Symbol Table 维基百科条目。 |
|
|
6
0
符号表是编译器为存储变量名、函数名、对象、类、接口等各种实体出现的信息而创建和维护的重要数据结构。 |