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,增加新的功能),并且能够被反映到应用程序中。