1.什么是Linux静态库呢?
Linux静态库(Static Library)是一种包含已编译的目标代码的文件集合,用于在链接时与其他目标代码一起组成可执行文件。与动态库(Dynamic Library)不同,静态库的代码在编译时完全复制到最终可执行文件中,因此不需要额外的库文件依赖关系。
2.静态库的优缺点
优点:使用静态库的优点是,可执行文件不依赖于外部库文件,因此更具移植性和独立性。
缺点:静态库会增加可执行文件的大小,并且相同的静态库代码会在每个可执行文件中重复出现,造成资源浪费。每次更新静态库的时候,我们需要重新编译代码。
3.如何生成自己的静态库呢?
1.编译源代码文件为目标文件(Object File)
2.将目标文件添加到静态库中
3.编译,文件结构如下。编译如下
4.附一下min.c max.c 和test1.c的代码
//min.c
int min(int a, int b) { return a > b ? b : a; }
//max.c
int max(int a, int b) { return a > b ? a : b; }
//test1.c
#include <stdio.h>
int max(int a, int b);
int min(int a,int b);
int main() {
printf("%d,%d",max(0,99),min(0,99));
}
5.如果静态库与当前需要编辑的文件没有在同一目录下,我们需要在-L下指定路径:如: