【lesson42】制作静态库和使用静态库

制作静态库

为什么要学习制作动静态库?因为以后工作是会经常用到

1.如果我们想写个库怎么办?(编写库的人的角度)
2.如果把库给别人,别人怎么用?(使用库的人的角度)

静态库(尾缀.a的文件)
动态库(尾缀.so的文件)

开始制作静态库
注意库里面,一定不能用main函数,否则如果被多个.c文件包含就会出错
开始写库
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
先创个main.c测试一下代码是否有问题。
在这里插入图片描述
运行代码:
在这里插入图片描述
我们看到确实可以执行程序,说明代码没有问题。

如果只把.h和.o文件给别人,别人能用吗
测试:
1.main.c移到usrlib中
2.生成.o文件
3.将.o文件和.h文件拷贝一份到usrlib中
4.usrlib中编译测试

1. main.c移到usrlib中
在这里插入图片描述
2. 生成.o文件
在这里插入图片描述
3. 将.o文件和.h文件拷贝一份到usrlib中
在这里插入图片描述

4. 编译main.c文件和.o文件形成可执行
在这里插入图片描述
运行代码
在这里插入图片描述
发现确实可以运行。
注意:这里其实.h文件可以不用拷贝进去也能运行

上面这个方法确实可行,但是又太多.o文件了,所以我们把.o文件打包,而这就是静态库
制作静态库
在这里插入图片描述
这个.a文件就是静态库。

Makefile 自动化上面打包的过程
在这里插入图片描述
演示:
make生成文件:
在这里插入图片描述
make clean:删除文件
在这里插入图片描述
那么怎么发布库给别人用呢?
计划
生成一个hello目录文件
hello中内容:
在这里插入图片描述
更改Makefile使其自动化生成hello
在这里插入图片描述
make hello:自动生成hello
在这里插入图片描述
查看是否生成成功
在这里插入图片描述

而接下来我们只要把hello给别人用即可
在这里插入图片描述
那么我们该如何使用库呢?

使用静态库

方法一:
gcc默认头文件搜索路径是:/usr/include/
gcc默认库搜索路径是:/lib64
所以我们把自己写的库和头文件放进其中即可。

头文件放入其中
在这里插入图片描述
库放入其中
在这里插入图片描述
运行代码看一下是否成:
在这里插入图片描述
我们发现编译代码报错
因为自己写的库属于第三方库,gcc默认使用C语言库,所以我们要指明用哪个库。

用库libhello.a去掉前缀lib,去掉后缀.a就是库名。
在这里插入图片描述
运行代码:
在这里插入图片描述
我们看到确实可以。

我们刚刚拷贝库到系统的默认路径下,就叫做库的安装。不建议自己写的库安装到系统路径下。
在这里插入图片描述

方法二:
在这里插入图片描述

-I: 指明头文件搜索路径
-L: 指明库文件搜索路径
-l: 指明使用哪个库

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值