库是一个包含的代码可以被程序调用的二进制文件。
静态库和动态库的区别
静态库:
1、编译时把静态库中相关代码复制到可执行文件中
2、程序运行时无需加载库,运行速度快(有点)
3、占用更多的磁盘和内存空间,静态库升级后,程序就需要重新编译,库升级不方便
动态库:
1、编译时仅记录使用哪个共享库(动态库)中的哪个符号(函数),不复制共享库的相关代码,运行时加载共享库
2、程序不包含库中的代码,代码尺寸小
3、库升级方便,无需重新编译
4、使用广泛
创建静态库
第一步:
编写源代码
第二步:
将源代码生成相对应的.o文件
第三步:
静态库的命名规范lib库名.a
ar:库文件维护程序的名称
c:创建一个库,不管库是否存在,都将创建
r:在库中插入模板
s:创建目标文件索引,在创建较大库的时候能加快时间
第四步:
链接静态库
注意:-L. 当前路径
第五步:
运行即可
创建动态库
第一步:
编写源代码
第二步:
将源代码生成相应的.o文件
-fPIC:生成与位置无关的代码,可以在任何位置运行
第三步:
创建共享库,共享库的命名规范:lib库名.so.版本号:数字
第四步:
-shared:指定生成动态链接库
第五步:
给共享库创建软链接,创建软链接的目的是能够然我们的编译器在编译的时候找到共享库
第六步:
编译
第七步:
运行,注意将共享库拷贝到系统库路径下
关于Linux下动态库和静态库我的一些小小的建议就到此结束,我会不断完善的。