命名规则:
lib + 库的名字 + .a # linux中静态库以.a结尾.
制作步骤:
1> 生成对应的.o文件.
2> 将生产的.o文件打包. (用ar工具打包, ar rcs + 静态库的名字 + 生产的.o文件. )
发布和使用静态库:
发布静态库:
1) 发布静态库
2) 头文件
使用静态库:
# 使用静态库需要头文件和静态库(lib*.a)及带main函数的.c文件.
# 下面是两种方法.
gcc main.c lib*.a -I 头文件路径 -o 生产的可执行文件名字.
gcc main.c -I 头文件路径 -L ./静态库路径 -l 静态库名字 -o 生产的可执行文件名字.
使用nm命令可以查看静态库中的文件.
例:
bash$ nm liblist.a
delete.o:
0000000000000000 T Delete_SeqList # T 代表在代码区.
U puts
init.o:
0000000000000000 T Init_SeqList
U malloc
U puts
...
静态库的优缺点:
优点:
1). 发布程序的时候,不需要提供对应的库.
2). 应用程序调用库的时候加载速度快.
缺点:
1). 库打包到应用程序中,导致应用程序的体积很大.
2). 库发生了改变,需要重新编译程序.