linux动态库和静态库的区别 (linux 动态库 .0)

接静态库其实从某种意义上来说只不过它操作的对象是目标代码而不是源码而已。因为静态库被链接后库就直接嵌入可执行文件中了,这样就带来了两个问题。

(1)首先就是系统空间被浪费了。如果多个程序链接了同一个库,则每一个生成的可执行文件就都会有一个库的副本,必然会浪费系统空间。

(2)再者,一旦发现了库中有bug,挽救起来就比较麻烦了。必搏哪须一一把链接该库的程序找出来,然后重新编译。

而动态库的出现正弥补了静态库的以上弊端。因为动态库是在程序运行时被链接的,所以磁盘上只须保留一份副本,因此节约了磁盘空间。如果发现了bug或要升级也很简单,只要用新的库把原来的替换掉就行了。

但是静碰银模态笑缓库的优点:

编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。

静态库的名字一般是lib.a(Linux)

动态库的名字一般是lib.so(Linux),有时候也是 lib.so.major.minor,x是该lib的名称,major是主版本号, minor是副版本号。

相关问题拓展阅读:

linux加载动态库文件过短怎么办

如果你遇到了Linux加载动态库文件过短的问题,可能是由于动态库的文件名中包含有特殊字符(比如空格、中文等)或者被放置在了非标准路径下。以下是一些可能的解决方法:

1. 将动态库文件从非标准路径移到标准路径下,比如将文件放到/usr/lib/路径盯谈下

2. 检查动态库文件名中是否包含有特殊字符,如果有,试着修改文件名,例如用下划线代替空格,或者全英文文件名

3. 检查库文件本身是否有问题以及是否被正袜早确编译,可以使用ldd命令检查动态库依赖凯好碰关系,或使用objdump命令分析是否缺少所需的符号

希望这些方法能够帮助你解决问题。

linux 动态库 .0的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux 动态库 .0,linux动态库和静态库的区别,linux加载动态库文件过短怎么办的信息别忘了在本站进行查找喔。


数据运维技术 » linux动态库和静态库的区别 (linux 动态库 .0)