一.什么是库文件
库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。
在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在
/usr/include 下或其子目录下。
库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so,
如下图所示:
![](https://i-blog.csdnimg.cn/blog_migrate/26a9c98c32e20df5eef1f397b4479574.png)
二.静态库的生成与使用
1.静态库的生成
以下是需要生成静态库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c”
是函数的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/f96044428b565b26db041e4d737e3170.png)
具体步骤:
![](https://i-blog.csdnimg.cn/blog_migrate/097077d68d2711717c11037cdcd94849.jpeg)
三.共享库的生成与使用
1.共享库的生成
以下是需要生成共享库的”.c”文件,其中“foo.h”中是函数的声明,“add.c”和“max.c” 是函数的定义:
![](https://i-blog.csdnimg.cn/blog_migrate/6f7278015686d58b3ce4a0b4153f2ff7.png)
具体步骤
![](https://i-blog.csdnimg.cn/blog_migrate/4ad86fbe426c5a39243c75f79dc03a9e.jpeg)
四.环境变量
如果库不在标准位置下,也可以通过设置环境变量”LD_LIBRARY_PATH”来指定加
载库的路径。
![](https://i-blog.csdnimg.cn/blog_migrate/1fceb642a1343fddd2029168f2cd476d.png)
五.静态库和共享库的区别
1.程序使用静态库,编译后,用到的库方法会复制到可执行程序中,再次运行,直接运行当前程序,不要连接静态库。
2.程序使用共享库,编译链接后,可执行程序只标记到用到的库方法,并不包含,再次运行,动态链接到要用的共享库。
因此,含有静态库的程序占有内存较大。