目标文件--简介


1.目标文件的作用

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

2.目标文件都有什么

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

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

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

3.程序与目标文件

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

wps84DB.tmp

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值