linux中o和a文件指的是什么

64次阅读
没有评论

共计 1518 个字符,预计需要花费 4 分钟才能阅读完成。

本篇内容主要讲解“linux 中 o 和 a 文件指的是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“linux 中 o 和 a 文件指的是什么”吧!

在 linux 中,“.o”文件指的是目标文件,即存放目标代码的计算机文件;目标文件包含着机器代码(可直接被计算机中央处理器执行)以及代码在运行时使用的数据,此外还包括其他调试信息。“.a”文件指的是静态库文件,是指要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分,动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是在其中加入了所调用函数的描述信息。

o 就是 object,也就是相当于 windows 下编译的 obj 文件,俗称目标文件

a 就是 archive,也就相当于 window 的 VC 下编译的 lib 文件,俗称静态库文件;多个.a 可以链接生成一个 exe 的可执行文件。

.o 文件是链接文件,.a 静态库文件,靠.o 文件生成,作为一个库外部程序提供函数,接口。生成.o 文件。

linux 中的 o 文件(目标文件)

目标文件 (objectfile) 即存放目标代码的计算机文件,它常被“称作”二进制文件 (binaries)。目标文件包含着机器代码(可直接被计算机中央处理器执行) 以及代码在运行时使用的数据,如重定位信息,如用于链接或调试的程序符号表(变量和函数的名字),此外还包括其他调试信息。

Linux 下有 3 种目标文件形式:

可执行目标文件,可重定位目标文件和共享目标文件。也有对应的称为可执行文件,目标文件,共享库,只是说法不同,指的都是同样的东西。

可执行目标文件:包含二进制代码和数据,可以在存储器中直接执行。

可重定位目标文件:包含二进制代码和数据,可以在编译时与其他可重定位目标文件合并起来的,创建一个可执行目标文件。

共享目标文件:是一种特殊的可重定位目标文件,可以在加载或者运行时被动态加载到存储器并链接。

事实上,编译器和汇编器生成可重定位目标文件(包含共享目标文件)。链接器生成可执行目标文件。

Linux 下目标文件文件格式:

由于编译后的中间文件(Windows 下的.obj 和 Linux 下的.o),动态链接库和静态链接库(Windows 下的.lib.dll 和 Linux 下的.a.so),跟可执行文件的内容和结构相似,所以一般跟可执行文件一起采用同一种文件格式存储。

linux 中的 a 文件(静态库文件)

.a 文件,是 LINUX 系统中的静态链接库文件。

所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。.so 文件是共享库文件(动态链接)。动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息(往往是一些重定位信息),仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的.so 之间建立链接关系。

.a 文件是多个.o 文件的组合。.o 文件就是对象文件,里面包含的内容就是 01 这样的机器可执行的指令,当程序要执行时还需要进行链接(link). 链接就是把多个.o 文件链成一个可执行文件。

什么是 Linux 系统

Linux 是一种免费使用和自由传播的类 UNIX 操作系统,是一个基于 POSIX 的多用户、多任务、支持多线程和多 CPU 的操作系统,使用 Linux 能运行主要的 Unix 工具软件、应用程序和网络协议。

到此,相信大家对“linux 中 o 和 a 文件指的是什么”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-13发表,共计1518字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)