chapter22:源码与Tarball之(3)-函数库的管理

一.函数库的两种类型

(1)静态函数库

扩展名为libxxx.a

在编译的时候整合到执行程序中.所以文件会相对比较大.

可以独立执行.

如果函数库升级,则整个程序都要重新编译.

(2)动态函数库

扩展名为libxxx.so

可执行文件在要用到函数库的时候才去读取,文件相对小些.

不能独立执行.函数库的目录也不能改变.

函数库升级后,可执行文件不用重新编译.所以升级方便.

目前Linux distribution一般使用动态函数库,因为升级方便.大多数函数库放在/usr/lib, /lib下面,还在很多的函数由kernel提供,也就是放在/lib/modules需.不同版本的内核的函数库很不一样,所以kernel 2.4版本系统不要想将内核升级到2.6.等,很容易因为函数库的不同的导致很多软件不能使用.

二.如何将函数库先加载到内存中以增加性能

使用ldconfig与/etc/ld.so.conf可以将常用的函数库先加载到内存中以提高性能.

三.如何判断一个可执行的程序含有什么动态函数库

可以使用ldd命令,如我们想要知道/usr/bin/passwod这个程序要用到什么动态函数库,可以这样

里面可以看到PAM(身份验证)模块.,我们再找出/lib/libc.so.6这个函数相关的函数库(注意它的路径)

四.验证软件的正确性

只说明下如何进行验证.

还是以ntp为例子.官网的md5为下图

下载后验证为

两者相同,因此安全.

原文地址:https://www.cnblogs.com/chuiyuan/p/5061318.html