.a文件.o文件和.so文件有什么区别?

.a文件.o文件和.so文件有什么区别?,第1张

o: 编译的目标文件 a: 静态库,其实就是把若干o文件打了个包 so: 动态链接库(共享库)  lo: 使基乱含用libtool编译出的目标文件,其实就是在o文件中添加了一些信息  la: 使用libtool编译出的库文件,其实是个文本文件,记录同名动态库和静态库的相关信息。

我们通常把一些公用函数制作成函数库,供其它程序使用,函数库分为静态库和动态库两种,静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库,动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在,在创建函数库前,我们先来准搏笑备举例用的源程序,并将函数库的源程序编译成陪凳.o文件。

它们的具体区别并不算太大,只是链接后的不同,具体区别如下:

o:是编译的中间目标文件将多个中间目标文件,可以链接成可执行文件。

so:文件表示动态链接库。

a:代表的逗竖带是静态函数库,当纤铅同时运行多个程序并且都使用到同一个函数库的函数时,内存中就会有同一函数的多份副本,会消耗大量宝贵的内存。

lo:使用libtool编译出的目标文件,其实就是在o文件中添加了一些信息。

la:使用libtool编译出的库文件,其实是个文本文件,记录同名动态山芦库和静态库的相关信息


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/tougao/12232194.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-22
下一篇 2023-05-22

发表评论

登录后才能评论

评论列表(0条)

保存