- 函数库
程序开发中,将一些具有一定功能、且经常被调用的函数编译成函数库。函数库可以使得程序的开发简单、方便。函数库分为静态和动态。之间也存在一定的区别。
- 静态函数库
这类函数库以扩展名.a结束。这类函数库通常为libxxx.a类型。他们是在编译的时候直接整合到执行程序当中,所以在程序中只要用到这类库的时候,都会存在一份库函数。这类函数库的最大优点是当编译成可执行文件以后,不再需要读取外部的函数库的内容了。
但是,当要对库函数进行升级了。整个程序必须重新编译。
- 动态链接库
扩展名通常为libxxx.so的类型。动态链接库并没有把代码整合到程序当中。而是通过程序当中的指针来指向函数库来实现的。所以它的程序也相应的能小些。但是,这类型的函数库编译出来的程序是不能独立执行的。函数库的目录也是不能改变的。但是也正是由于它的独立性,如果库函数发生改变的话,只需要对库函数进行独立编译。
动态链接库是被放在硬盘上的,当程序运行时,需要调用动态链接库时。但是硬盘的访问速度有限,影响程序的开启速度。此时,可以将动态链接库从硬盘先读到内存当中(cache),调用速度也就提高了。
将动态链接库加载到高速缓存中:
- 在/etc/ld.so.conf 中加入函数库的目录
- ldconfig 执行/etc/ld.so.conf中的资料到cache中
- 同时将数据也记录一份到/etc/ld.so.cache