动态库和静态库制作使用教程

静态库和动态库

区别:
1.静态库在程序的链接阶段被复制到了程序中;
2.动态库在链接阶段没有被复制到程序中,而是在程序执行时由系统动态加载到内存中供程序使用

命名规则:
1.Linux: libxxx.a
2.windows: libxxx.lib

静态库的制作:
在这里插入图片描述

执行 gcc -c add.c div.c mult.c sub.c
请看:
在这里插入图片描述
流程:
在这里插入图片描述
输入 ar rcs libcalc.a add.o sub.o mult.o div.o
生成静态库成功
在这里插入图片描述

静态库的使用

library假设是我们的工程
在这里插入图片描述
我们 cp -r …/lesson04/libcalc.a ./lib/
将之前执行好的静态库 拷贝到本项目的Lib文件中
在这里插入图片描述
main.c 中的#include “head.h”
这个头文件 是当前文件下没有的所以
gcc main.c -o app -I ./include/
执行这一段命令
在这里插入图片描述
但是你没有用这个静态库哦就会有以下报错
在这里插入图片描述
gcc main.c -o app -I ./include/ -l clac -L ./lib

-L 库的路径 -I头文件路径 -l 库的名称
在这里插入图片描述
路径要对哦~
实现成功
在这里插入图片描述

动态库制作

命名规则:
Linux: libxxx.so
windows:libxxx.lib
在这里插入图片描述
对*.c操作完 对*.o在操作 如下
在这里插入图片描述

生成.so
在这里插入图片描述
将生成的.so 拷贝到当前Lib文件下

通过lld检查动态库依赖关系 这个不是很重要
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

修改/加入 环境变量
$获取路径
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你动态库的绝对路径
在这里插入图片描述
但是终端退出之后,又会失效,所以会消失,所以我们要永久的配置好环境变量如果是永久的话
用户级别:

回到家目录,修改.bashrc末尾加上export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:你动态库的绝对路径
在这里插入图片描述
source使用该资源

总结:

静态库:
在这里插入图片描述
动态库:
在这里插入图片描述
静态库优缺点
在这里插入图片描述

在这里插入图片描述
动态库优缺点:
在这里插入图片描述
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值