主要是熟悉下,之前弄过,但忘记了……。其次,是对一些概念更明确些。
为什么要使用库?
库是一种可执行的二进制文件,是编译好的代码。可以直接拿过来就用,提高开发效率。
静态库与动态库的概念
静态库:
静态库在程序编译的时候会被链接到目标代码里面(即:编译程序时,静态库中的函数被拷贝到当前的程序中),所以我们的程序就不再需要该静态库了。因此编译出来的体积就比较大,静态库以lib开头,以.a结尾。
动态库
动态库在程序编译的时候不会被链接到目标代码里面,而是在程序运行的时候被载入的,所以在程序运行的时候就需要动态库。因此编译出来的体积就比较小。动态库以 lib 开头,以.so 结尾。
两种库适用情形???
静态库的制作步骤:
- 编写或准备库的源代码,此步略
- 将源码.c 文件编译生成.o 文件,执行gcc -c libstatic.c
- 使用ar命令创建静态库,执行 ar cr libstatic.a libstatic.o
此时需要加入两个参数“c”“r”,“c”代表的是创建,“r”代表的是覆盖.
libstatic.a就是静态库的文件名,.o文件就是上一步生成的.o目标文件。 - 测试:编写main函数,直接在函数里调用此库