可重定位目标文件由汇编器as生成,包含了当前模块定义的符号及引用的外部模块符号信息,可以与其他可重定位目标文件链接为一个可执行目标文件。
有三种不同类型的符号,第一种,由当前模块定义的全局符号;第二种,由其他模块定义并被当前模块引用的全局符号,当前模块需使用extern关键字来修饰全局符号;第三种,只被当前模块定义和引用的本地符号,即static类型的,包括全局和局部变量。
所有符号信息以符号表的形式保存在.symtab,如下图所示,其中Name表示符号名,Ndx表示所属Section,Value表示相对Ndx的偏移值。