linux的函数库管理

来源:互联网 发布:日落黄沙知乎 编辑:程序博客网 时间:2024/06/07 09:58

动态和静态函数库

静态函数库的特色:

拓展名:为.a,函数库通常拓展名为lib×××.a类型

编译行为:会直接整合到执行程序当中,所以利用静态函数库编译成的文件会比较大

独立执行的状态:最大的优点就是编译成功的可执行文件可以独立执行,不需要向外部要求读取函数库内容

升级难易度:只要函数库升级了,所有将此函数库纳入的程序都需要重新编译。


动态函数库的特色:

拓展名:.lib××××.so

编译行为:在编译时,程序里面只有一个指向(pointer)的位置而已,也就是当可执行文件当中仅具有指向动态函数库所在的指标而已,并不包含函数库的内容,文件会小。

独立执行的状态:这类函数库编译的程序不能被独立执行,当使用到的时候,程序才会读取函数库,所以函数库文件必须要存在,且函数库的所在目录也不能改变。

升级难易度:容易


目前linux倾向使用动态函数库,因为升级方便,只要动态函数库升级就行,其他软件无需变动。

如果我们将常用到的的动态函数库先加载到内存中,如此一来,当软件要使用函数库就不用从硬盘读取。如何将动态函数库加载到高速缓存当中呢?

1.首先要在/etc/id.so.conf里面写下想要读入高速缓存的动态函数库所在的目录。

2.接下来利用idconfig这个可执行文件将/etc/id.so.conf的数据读入缓存


程序的动态函数库解析:Ldd

如果我想知道/usr/bin/passwd 这个程序含有的动态函数库有哪些,可以这样做


检测软件的正确性:

可通过每个文件独特的指纹验证数据,MD5


0 0
原创粉丝点击