day2:关于目标文件
来源:互联网 发布:软件测试软件 编辑:程序博客网 时间:2024/05/21 17:09
关于目标文件的一些问题
所谓目标文件,就是我们在Windows平台下开发生成的.obj文件,在linux下.o文件。在代码编译后但并未链接生成的文件。
1.目标文件的格式
目标文件的格式和可执行文文件(也就是我们在windows下常见到的exe文件,dll文件等)结构相似,所以一般采用一种格式存储。目前Windows下主要采用PE格式,Linux下主要采用ELF,但是他们两个都有一个共同的祖先COFF(Common file format)。不光目标文件和执行文件采用一样的格式,动态链接库和静态链接库也采用的是这一格式,但稍稍注意的是静态链接库文件(也就是W下的lib和L下的.a),它是把很多目标文件集合在了一起,并加上了索引。
2.目标文件的内容
一般目标文件是按“节”存储,有的也叫“段”存储。File Header.text .data .bss...other sectionssection header tableString TablesSymbol Tables 主要由以下几段组成:
一般目标文件是按“节”存储,有的也叫“段”存储。File Header.text .data .bss...other sectionssection header tableString TablesSymbol Tables 主要由以下几段组成:
代码段:主要存放源代码编译后的机器指令经常被放在代码段里,一般放在.text中。
数据段: 主要存放全局变量和局部静态变量,扩展名为.data。
BSS段:没有初始化的全局变量和局部静态变量一般会放在这个段里。注意全局变量和局部静态变量的初始化值若为0,也会被放在BSS段里。
当然,在目标文件中不只有这几个段,还有很多段,比如存放调试器版本信息、调试信息、动态链接信息等等。
还有需要注意的是文件头(也就是File header),File header 包含了整个文件的基本属性,比如ELF文件版本、目标机器号、程序入口地址等。
0 0
- day2:关于目标文件
- 关于目标文件的一些读书笔记
- 关于目标文件里的东西
- 关于目标
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件
- 目标文件--ELF目标文件
- Day2
- day2
- DAY2
- day2
- Problem - 501B - Codeforces(string+map)
- gnuplot 拟合 fit函数的用法
- 6、文件的路径问题、错误的处理
- 仿函数
- 黑马程序员——Mac OS X终端的常用操作命令(UNIX指令)
- day2:关于目标文件
- UVA1395 Slim Span(kruskal算法)
- mysql数据库设计-多对多
- linux shell 编程
- springMVC中@requestBody问题
- Redis命令总结
- 需求文档可以不签字吗? 之一
- Linux大爆炸
- DSP中由C转成C++出现编译 badly formed pragma错误的解决.