美文网首页
04--目标文件的格式

04--目标文件的格式

作者: 修_远 | 来源:发表于2020-10-27 23:03 被阅读0次

[TOC]

一、ELF文件格式

1、什么是目标文件

  1. 编译器编译源代码后生成的文件叫做目标文件
  2. 目标文件从结构上讲,他是已经编译后的可执行文件
  3. 还没有经过链接的过程
  4. 可能有些符号或有些地址还没有被调整
  5. 本身就是按照可执行文件格式存储的,只是跟真正的可执行文件在结构上稍有不同

2、怎么去了解目标文件

  1. 目标文件里面到底存放的是什么?
  2. 源代码经过编译后是怎么存储的?

二、目标文件格式

1、可执行文件

  • Windows:PE(Protable Executable)
  • Linux:ELF( Executable Linkable Format)
  • 扩展于:COFF(Common File Format)

其他的

  • Inter/Microsoft:OMF(Object Module Format)
  • Unix:a.out
  • MS-DOS.com

2、动态链接库和静态链接库

除了可执行文件是按照可执行文件格式存储

  • 动态链接库(DLL):Dynamic Linking Library
  • 静态链接库(SLL):Static Linking Library

这两个链接库也都是按照可执行文件的格式存储的,在不同操作系统上,具体存储方式上有细微的差异性

  • Windows:他们按照 PE-COFF 格式存储
  • Linux:按照ELF格式存储
  • 静态库:可以理解为多个目标文件捆绑在一起形成的一个文件,再加上一些索引(头文件)

3、ELF文件类型

ELF 文件类型 说明 实例
可重定位文件(Reloatable File) 这类文件包含了代码和数据,可以被用来连接成可执行文件或共享目标文件,静态链接库也可以归为这一类 Linux的 .o、Windows的 .obj
可执行文件(Executable File) 可以直接执行的程序,代表是ELF可执行文件,没有扩展名 比如 /bin/bash 文件、windows的 .exe
共享目标文件(Shareed Object File) 包含代码和数据。使用情况有两种,一种是链接器可以用它跟其他的可重定位文件和共享目标文件链接,产生新的目标问加你。第二种是动态链接器可以将几个这种共享目标文件与可执行文件结合,作为进程映像的一部分运行起来 Linux的.so,如/lib/glibc-2.5.so、Windows的DLL
核心转存文件(Core Dump File) 当进程意外终止时,系统可以将该进程的地址空间的内容及终止时的一些其他信息转存到核心转存文件 Linux下的 core dump
image.png

【tips】目标文件与可执行文件格式的小历史

  • Unix最早的可执行文件格式为 a.out 的格式,设计简单,当共享库的概念出现的时候,a.out 格式变得捉襟见肘了
  • 于是 COFF 格式出现了,有以下两个特点:
    • 引入了段的机制,不同目标文件可以有不同数据及不同类型的段
    • 还定义了调试数据格式

相关文章

  • 04--目标文件的格式

    [TOC] 一、ELF文件格式 1、什么是目标文件 编译器编译源代码后生成的文件叫做目标文件 目标文件从结构上讲,...

  • 目标文件和ELF格式详解

    目标文件和ELF格式详解 Linux生成的目标文件是标准的ELF文件格式,使用objdump工具和readelf工...

  • 目标文件

    目标文件有什么 目标文件的格式 PC平台流行的可执行文件格式主要为 Windows下:PE Linux下:ELF ...

  • Common Workflow Language [四]

    十六 文件格式 问题 如何标记输入文件所需的文件格式? 如何标记输出文件的生成文件格式? 目标 学习如何明确指定F...

  • 第二部分-目标文件

    二、目标文件 1、目标文件:编译器编译源代码后生成的文件叫目标文件; 2、目标文件的格式: 1)现在PC平台流行的...

  • Makefile使用小结

    基本格式 目标文件: 依赖文件[tab] 命令 1[tab] 命令 2…… 符号 $@ 目标文件 $^ 所有依赖文...

  • Linux 目标文件的格式

    编译器用于为源程序文件产生对应的二进制代码和数据目标文件。链接程序用于对相关的所有目标文件进行组合处理,形成一个可...

  • ELF目标文件与readelf

    readelf elf文件格式分析 背景 目标文件 首先需要介绍的概念是目标文件(Object file)的概念。...

  • MakeFile文件学习(一)

    1、文件书写格式 书写格式 目标:依赖【tab键】规则 简单使用

  • 《程序员的自我修养》------知识总结

    目标文件的格式:可重定位文件(.o与.obj),可执行文件(/bin/bash与.exe),共享目标文件(.so与...

网友评论

      本文标题:04--目标文件的格式

      本文链接:https://www.haomeiwen.com/subject/xpmfvktx.html