[转帖]Linux中关于库

linux,关于 · 浏览次数 : 0

小编点评

**库文件分类** 1. 静态库:`libxxx.a` 2.共享库:`libxxx.so` **静态库与共享库的区别** | 特性 | 静态库 |共享库 | |---|---|---| | 代码载入时刻 | 在编译过程中被载入 | 在运行时被载入 | | 代码体积 | 较大 | 较小 | | 可执行文件体积 | 较大 | 较小 | | 代码可重复使用性 | 高 | 低 | | 可更新性 | 不能更新 | 可更新 |

正文

1.库文件

库是一组预先编译好的方法的集合.

/lib 根目录下的库文件

/usr/lib

Linux系统存储库的位置一般存放在/lib 和/usr/lib(64位系统/usr/lib64)

库的头文件放在/usr/include

2.库的分类

静态库libxxx.a(命名规则)

lib开头

静态库名

.a结尾

在这里插入图片描述
共享库也称动态库libxxx.so(命名规则)

lib开头

动态库名

.so结尾

在这里插入图片描述

3.静态库和共享库的区别

1)静态库的代码在编译过程中已经被载入可执行程序,因此体积较大;

2)共享库的代码是在可执行程序运行时才载入内存的,在编译过程中仅简单的引用,因此代码体积较小;

3)因此,二者的不同点在于代码被载入的时刻不同。静态库的代码在编译过程中已经被载入可执行程序,因此体积较大。共享库的代码是在可执行程序运行时才载入内存的, 在编译过程中仅简单的引用, 因此代码体积较小;

静态库链接生成的可执行文件体积较大,且包含相同的公共代码,造成内存浪费;共享库显著减少应用程序可执行文件占用的硬盘空间。

4)使用静态库,在链接阶段直接将库中的内容合并到最终的可执行文件中;
使用共享库,在链接阶段只在可执行文件中设置使用的库,运行时有操作系统动态加载到内存上,所以执行速度比共享库要快一点。
5)静态库文件的更新不会反映到应用程序中,需要重新编译新的静态库;共享库能够在任何时候更新(修复bug,增加新的功能),并且能够被反映到应用程序中。
在这里插入图片描述

文章知识点与官方知识档案匹配,可进一步学习相关知识
云原生入门技能树首页概览9867 人正在系统学习中

与[转帖]Linux中关于库相似的内容:

[转帖]Linux中关于库

库 1.库文件2.库的分类3.静态库和共享库的区别 1.库文件 库是一组预先编译好的方法的集合. /lib 根目录下的库文件 /usr/lib Linux系统存储库的位置一般存放在/lib 和/usr/lib(64位系统/usr/lib64) 库的头文件放在/usr/include 2.库的分类 静

[转帖]Linux后门的几种姿势

转载自 https://evilanne.github.io/2017/08/26/Linux后门-持续关注/ 在一次渗透中,成功获取某目标几台比较重要的机器,当时只想着获取脱库,结果动静太大被发现了,之前渗透并没太在意Linux后门,经过此次事后从Google找各种资料,一款满意的rootkit都

[转帖]linux中关于带宽 MTU的一些命令

linux中关于带宽 MTU的一些命令 https://blog.51cto.com/xiaoliuer/1882208 查看协商的带宽大小 sudo ethtools eth0 Linux更改网卡MTU方法: 1. 打开终端,查看当前网卡设置:ifconfig 2. 对需要改MTU的网卡进行设置(

[转帖]Linux性能测试之unixbench

https://www.modb.pro/db/487945 大家好,昨天为大家带来了一篇关于在Linux下性能测试的文章《性能测试之LTP》,今天继续为大家推荐系列工具之unixbench,本工具用于Linux中cpu系统的测试,详情请查看百度,这里不多赘述,本文主要用于演示如何使用此工具。本文使

[转帖]Linux性能测试之unixbench

https://www.modb.pro/db/487945 大家好,昨天为大家带来了一篇关于在Linux下性能测试的文章《性能测试之LTP》,今天继续为大家推荐系列工具之unixbench,本工具用于Linux中cpu系统的测试,详情请查看百度,这里不多赘述,本文主要用于演示如何使用此工具。本文使

[转帖]关于Linux操作系统中LUN的队列深度(queue_depth)

Linux中的queue_depth(队列深度),可以用lsscsi查看。不过今天在我的vm 虚拟机环境中(无外界存储),是没有lsscsi命令。不过,从网上,搜到了如下的信息:$ lsscsi -l[0:0:1:0] disk FUJITSU MAM3184MP 0105 /dev/sda sta

[转帖]CONNTRACK_MAX和HASHSIZE

关于linux中的CONNTRACK_MAX和HASHSIZE要注意的地方 如果在压力测试的时候,并发数增大,但无法完成测试,可以尝试调整下参数: vi /etc/sysctl.conf 在kernel2.6之前的添加项: net.ipv4.netfilter.ip_conntrack_max =

[转帖]who 命令的解释与示例

https://linux.cn/article-15430-1.html 这里是一个关于理解 Linux 中 who 命令的初学者指南,并带有几个例子。 这篇文章是 Linux 命令学习系列的一部分。 who 命令 Linux 中的 who 命令用于显示当前登录到系统中的用户的信息。它显示用户的登

[转帖]Linux 文件系统 EXT4 的前世今生

https://www.oschina.net/translate/introduction-ext4-filesystem?print 在先前关于Linux文件系统的文章中,我写了一份说明书去介绍Linux文件系统,里面有一些高级的概念,比如说,一切都是文件。我很想去深入地讨论更多EXT文件系统的

[转帖]精华总结:10个问题理解 Linux epoll

epoll 是 linux 特有的一个 I/O 事件通知机制。很久以来对 epoll 如何能够高效处理数以百万记的文件描述符很有兴趣。近期学习、研究了 epoll 源码,在这个过程中关于 epoll 数据结构和作者的实现思路产生出不少疑惑,在此总结为了 10 个问题并逐个加以解答和分析。 本文基于的