静态库可以认为是一些目标代码的集合,是在可执行程序运行前就已经加入到执行码中,成为执行程序的一部分。
按照习惯,一般以“.a”做为文件后缀名。静态库的命名一般分为三个部分:
- 前缀:lib
- 库名称:自己定义即可
- 后缀:.a
所以最终的静态库的名字应该为:libxxx.a
1) 静态库制作
步骤1:将c源文件生成对应的.o文件
deng@itcast:~/test/3static_lib$ gcc -c add.c -o add.o
deng@itcast:~/test/3static_lib$ gcc -c sub.c -o sub.o deng@itcast:~/test/3static_lib$ gcc -c mul.c -o mul.o deng@itcast:~/test/3static_lib$ gcc -c div.c -o div.o
步骤2:使用打包工具ar将准备好的.o文件打包为.a文件 libtest.a
deng@itcast:~/test/3static_lib$ ar -rcs libtest.a add.o sub.o mul.o div.o
在使用ar工具是时候需要添加参数:rcs
- r更新
- c创建
- s建立索引
2)静态库使用
静态库制作完成之后,需要将.a文件和头文件一起发布给用户。要把库链接进文件
假设测试文件为main.c,静态库文件为libtest.a头文件为head.h
链接编译命令:为什么是test libtest.a去掉lib和.a就是库名,加不加空格都可以
deng@itcast:~/test/4static_test$ gcc test.c -L./ -I./ -l test -o test
参数说明:
要做一般都放在相同目录
- -L:表示要连接的库所在目录
- -I./: I(大写i) 表示指定头文件的目录为当前目录
- -l(小写L):指定链接时需要的库,去掉前缀和后缀