linux的函数库管理
动态和静态函数库
静态函数库的特色:
拓展名:为.a,函数库通常拓展名为lib×××.a类型
编译行为:会直接整合到执行程序当中,所以利用静态函数库编译成的文件会比较大
独立执行的状态:最大的优点就是编译成功的可执行文件可以独立执行,不需要向外部要求读取函数库内容
升级难易度:只要函数库升级了,所有将此函数库纳入的程序都需要重新编译。
动态函数库的特色:
拓展名:.lib××××.so
编译行为:在编译时,程序里面只有一个指向(pointer)的位置而已,也就是当可执行文件当中仅具有指向动态函数库所在的指标而已,并不包含函数库的内容,文件会小。
独立执行的状态:这类函数库编译的程序不能被独立执行,当使用到的时候,程序才会读取函数库,所以函数库文件必须要存在,且函数库的所在目录也不能改变。
升级难易度:容易
目前linux倾向使用动态函数库,因为升级方便,只要动态函数库升级就行,其他软件无需变动。
如果我们将常用到的的动态函数库先加载到内存中,如此一来,当软件要使用函数库就不用从硬盘读取。如何将动态函数库加载到高速缓存当中呢?
1.首先要在/etc/id.so.conf里面写下想要读入高速缓存的动态函数库所在的目录。
2.接下来利用idconfig这个可执行文件将/etc/id.so.conf的数据读入缓存
程序的动态函数库解析:Ldd
如果我想知道/usr/bin/passwd 这个程序含有的动态函数库有哪些,可以这样做
检测软件的正确性:
可通过每个文件独特的指纹验证数据,MD5
posted on 2016-07-22 20:02 sichenzhao 阅读(124) 评论(0) 编辑 收藏 举报