[TOC]
1、什么是目标文件
2、怎么去了解目标文件
1、可执行文件
其他的
2、动态链接库和静态链接库
除了可执行文件是按照可执行文件格式存储
这两个链接库也都是按照可执行文件的格式存储的,在不同 *** 作系统上,具体存储方式上有细微的差异性
3、ELF文件类型
典型的目标文件分为以下3种形式:可重定位目标文件:这种文件包含二进制代码和数据,这些代码和数据已经转换成了机器指令代码和数据。但是这种可重定位的目标文件还不可以直接执行,原因是这些指令和数据中往往引用其他模块(目标文件)中的符号。这些其他模块的符号对于本模块来说是未知的。这些符号的解析需要链接器将所有的模块进行链接。这种 *** 作成为“重定位”,因此这种目标文件成为“可重定位的目标文件”的后缀名通常是.o。
可执行目标文件:这种文件同样包含二进制代码和数据。所不同的是,这种文件已经经过了链接 *** 作,和所有的模块(目标文件)都产生了联系。链接器将所有需要的可重定位目标文件链接成为一个可执行目标文件。这时,每个目标文件中引用其他目标文件中的符号都已经得到了解析和重定位。因此每个符号都是已知的了,该文件可以被机器直接执行。
共享目标文件:这是一种特殊类型的可定位目标文件,可以在需要它的程序运行或者加载时,动态地加载到内存中运行。这种文件的后缀名通常是.so。共享目标文件又称为“动态库”文件或者“共享库”文件。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)