目录
1.什么是库文件:
库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。
库有两种,一种是静态库,其命令规则为 libxxx.a,一种是共享库,其命令规则为 libxxx.so。
两种库函数的使用过程:
静态库在链接时,把需要的库函数拷贝粘贴过来。
共享库在链接时,把需要的库函数标记,需要时去动态加载。
2.静态库的生成和使用(简单举例):
1.生成:
要先把.c文件变成.o文件才能创建静态库。
生成静态库:ar crv libfoo.a max.o min.o
使用 ar 命令将第一步编译的所有”.o”文件生成静态库,其中:
- c 是创建库
- r 是将方法添加到库中
- v 显示过程
2.使用静态库:
创建主函数:
使用静态库“libfoo.a”和“main.c”生成可执行文件的过程:gcc -o main main.c -L. -lfoo
其中:
- -L 指定库的存储路径
- -l 指定库的名称(不需要前面的‘lib’和扩展名‘.a’)
3.动态库的生成和使用(简单举例):
1.生成:
把.c文件变成.o文件
生成动态库:gcc -shared -fPIC -o libfoo.so max.o min.o
2.使用:
需要切换管理员权限把生成的动态库拷贝到/usr/lib下边:sudo cp libfoo.so /usr/lib
再生成可执行文件:gcc -o main main.c -L. -lfoo(这块-L可写可不写,因为它所指定的路径无用)
4.静态库和动态库的区别:
静态库在链接时,把需要的库函数拷贝粘贴过来,相对来说:速度快,浪费空间。
共享库在链接时,把需要的库函数标记,需要时去动态加载,相对来说:速度较慢,体积小。