o和a是什么意思啊?

如题所述

C语言中o文件是链接文件,a是静态库文件,靠o文件生成。

*.a文件,是*nix系统的静态链接库,是多个*.o文件合在了一起。里面包含了按照特定的结构组织起来的其它的一些文件(称做此库文件的member)。原始文件的内容、模式、时间戳、属主、组等属性都保留在库文件中。

.o文件就是对象文件,是可重定向文件的一种,通常以ELF格式保存,里面包含了对各个函数的入口标记,描述,当程序要执行时还需要链接(link).链接就是把多个.o文件链成一个可执行文件

在win平台下,用来链接的重定向文件也可为PE格式的.obj文件

当多种编程语言希望混合编译时,就可以通过分别编译成.o文件,再链接(link)成可执行文件。

.o文件

Code::Blocks ,win系统为例,我们每次写好一段程序,构建并运行以后都会在存储该程序的文件夹里自动生成一个 *.o 文件和一个*.exe 文件。

而后者是可以直接运行的(双击即可打开)。当写好了一个大的程序的各个部分以后,就可将所有的*.o 文件链接成一个可执行文件。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-05-10

.o文件是链接文件,.a是静态库文件,靠.o文件生成。

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

.a 就是archive, 也就相当于windows的VC下编译的lib文件, 俗称静态库文件。

安培(ampere)是国际单位制中表示电流的基本单位,简称安,符号A。1946年,国际计量委员会提出定义为:在真空中,截面积可忽略的两根相距1米的平行而无限长的圆直导线内,通以等量恒定电流,导线间相互作用力在1米长度上为2×10-7牛时,则每根导线中的电流为1安培。

安培和其他电流单位之间的换算关系为:

1安培相当于3×10CGS静电系电流单位(esu)。

1安培相当于0.1CGS电磁系电流单位(emu)。

用核磁共振法可以测量绝对测量安培 [4]  。

比安培小的电流可以用毫安(mA)、微安(μA)等单位表示。

1 A = 1000 mA

1mA = 1000 μA

以上内容参考:

本回答被网友采纳
第2个回答  2023-02-28
O就是object,也就是相当于Windows下编译的obj文件,俗称目标文件。
a就是archive,也就相当于Windows的VC下编译的lib文件,俗称静态库文件;多个.a可以链接生成一个exe的可执行文件。
.o文件是链接文件,.a静态库文件,靠.o文件生成,作为一个库外部程序提供函数,接口。生成.o文件。
Linux中的O文件
目标文件即存放目标代码的计算机文件,它常被称作二进制文件。目标文件包含着机器代码以及代码在运行时使用的数据,如重定位信息,如用于链接或调试的程序符号表,此外还包括其他调试信息。
Linux下3种目标文件形式
可执行目标文件,可重定位目标文件和共享目标文件。也有对应的称为可执行文件,目标文件,共享库,只是说法不同,指的都是同样的东西。
可执行目标文件:包含二进制代码和数据,可以在存储器中直接执行。
可重定位目标文件:包含二进制代码和数据,可以在编译时与其他可重定位目标文件合并起来的,创建一个可执行目标文件。
共享目标文件:是一种特殊的可重定位目标文件,可以在加载或者运行时被动态加载到存储器并链接。
Linux下目标文件文件格式
由于编译后的中间文件,动态链接库和静态链接库,跟可执行文件的内容和结构相似,所以一般跟可执行文件一起采用同一种文件格式存储。
Linux中的a文件
a文件,是Linux系统中的静态链接库文件。
所谓静态链接是指把要调用的函数或者过程链接到可执行文件中,成为可执行文件的一部分。当多个程序都调用相同函数时,内存中就会存在这个函数的多个拷贝,这样就浪费了宝贵的内存资源。.so文件是共享库文件。动态链接所调用的函数代码并没有被拷贝到应用程序的可执行文件中去,而是仅仅在其中加入了所调用函数的描述信息,仅当应用程序被装入内存开始运行时,在操作系统的管理下,才在应用程序与相应的.so之间建立链接关系。
.a文件是多个.o文件的组合。.o文件就是对象文件,里面包含的内容就是01这样的机器可执行的指令,当程序要执行时还需要进行链接.链接就是把多个.o文件链成一个可执行文件。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网