- 库文件:只编译一次,用时调用,节省时间
- 库文集文件问题:大量目标文件散落在系统的各个目录中,从而造成目录中内容的混乱
- 解决问题:将同一组目标文件组织成一个被称为对象库的单元
- 类别:静态+动态
- 共享库:现代化对象库,比静态库更有优势
- 静态库也被称为归档文件
静态库
- 静态库:在链接阶段库将会与目标汇编后的目标文件.o一起打包生成可执行文件。在编译的最后一步,若程序需要使用静态库,会在这一步一起打包到可执行文件中,成为可执行文件的一部分,之后就可以消失了。
- 优点:不需要跳转,效率比较好,脱离静态库文件
- 缺点:使目标文件(可执行文件)会比较大,修改和维护都不太方便,升级必须重新编译
动态库
- 动态库:在编译阶段不会有什么动作,只有当程序需要调用动态库的时候才会进行编译调用。
- 优点:实现了进程之间的资源共享,方便升级
- 缺点:在程序运行期间进行编译加载,减慢执行速度
共享库
- 共享库:在使用时,直接把点码所对应的地址复制过来
- 优点:目标文件较小,修改和维护都方便
- 缺点:需要跳转,效率比较低,不能脱离共享库文件