0
点赞
收藏
分享

微信扫一扫

目标文件--简介


1.目标文件的作用

          编译器和汇编器创建了目标文件(包含由源程序生成的二进制代码和数据)。链接器将多个目标文件合并成一个可执行文件。

2.目标文件都有什么

       一个目标文件包含五类信息。

  •  头信息:关于文件的整体信息,诸如代码大小,翻译成该目标文件的源文件名称,和创建日期等。
  •  目标代码:由编译器或汇编器产生的二进制指令和数据。
  •  重定位信息:目标代码中的一个位置列表,链接器在修改目标代码的地址时会对它进行调整。
  •  符号:该模块中定义的全局符号,以及从其它模块导入的或者由链接器定义的符号。
  •  调试信息:目标代码中与链接无关但会被调试器使用到的其它信息。包括源代码文件和行号信息,本地符号,被目标代码使用的数据结构描述信息(如C语言数据结构定义)。(某些目标文件甚至包含比这更多的信息)

      并不是所有的目标文件格式都包含这几类信息,一个很有用的目标文件格式很少或不包含以上任何信息,都是可能的。

3.程序与目标文件

          程序源代码编译后的机器指令经常被放在代码段(Code Section)里,代码段常见的名字有“.code”或“.text”;全局变量和局部静态变量数据经常放在数据段(Data Section),数据段的一般名字都叫“.data”。让我们来看一个简单的程序被编译成目标文件后的结构,如图3-1所示。


举报

相关推荐

0 条评论