静态库与动态库的创建与使用
1.基本概念
静态库:链接时,库与编译生成的.o文件一起打包到可执行文件中。linux/windows下扩展名分别为:.a/.lib
动态库:链接时,不会打包到可执行文件中,执行时会动态的加载动态库。linux/windows下扩展名分别为:.so/.dll
区别主要体现在:
a、可维护性。
合入更新。合入动态库的更新,只要替换库即可。但合入静态则需要重新链接,生成新的可执行程序,全量更新。
环境依赖。若包含静态库,编译成功后不依赖环境。动态库则存在依赖关系,需要环境中存在对应的动态库。
b、大小
空间利用率。若依赖相同静态库,则存在多份拷贝。
可执行文件大小。静态库文件较大。
c、动态库可以实现进程之间的资源共享,因此也称为共享库。
2.静态库的创建与使用
静态库本质就是一组.o组成的压缩文件,扩展名为.a/.lib
复制代码