基于vs2019的静态链接库的创建与使用(超详细)

1 篇文章 0 订阅
1 篇文章 0 订阅

前言

在我们平时写代码的时候,代码中会含许多头文件,然后我们就可以来定义一些变量,使用一些函数。那我们也会想,有没有可能把自己写的一些函数打包成这样,然后下次再碰到相似的题目就可以直接写上自己定义的头文件,直接调用自己定义的函数来解决问题,而不用再次重新写该函数。关于这件事还真可以实现,这就要提到今天的主题——链接库。

一、什么是静态链接库?


静态链接库(Static Library)包含一些由我们自己定义的变量与函数,在编译期间由编译器和链接器将它集成到可执行文件(.exe)中,在Window下的后缀名是.lib(听说在Linux下是.a)在这里插入图片描述就是图中第四个,有些电脑似乎没有后缀,你也可以看图标(三杠)。静态链接库最终都会包装到.exe文件中,这样可以方便程序的移植,但也有很大的缺点,比如.exe文件过大、不易于程序更新等等,所以现在的软件大多都是用的动态链接库(.dll)。

二、静态链接库的建立与使用

1、静态链接库的建立

创建一个静态链接库项目

新建项目往下滑找到静态库
在这里插入图片描述
选择一个自己熟悉的文件夹

创建一个头文件

右键头文件添加一个新建项
在这里插入图片描述
选择头文件,建一个MS.h,点击添加
在这里插入图片描述

编写自己的静态库

这里以两个函数sub()减法,add()加法为例子
在这里插入图片描述
将鼠标点击一下add这里,然后按alt+回车,出现这几个选项,点击创建add的定义
在这里插入图片描述
在这里声明这个函数,对sub操作相同
在这里插入图片描述

生成静态库

右键自己静态库项目,点击生成
在这里插入图片描述
这样表示生成成功
在这里插入图片描述
这样我们就建立了自己的静态连接库,是不是十分简单,好了,建立好了,接下来我们就该使用它了

2、静态链接库的使用

创建一个新项目

右键解决方案->添加->新项目
在这里插入图片描述
创建一个空项目
在这里插入图片描述
添加一个源文件
在这里插入图片描述
在这里插入图片描述

写入自己定义的那个头文件

在这里插入图片描述
此时我们可以将其设为启动项来试一下
在这里插入图片描述
此时它会报几个错误,因为在它编译器中没有我们的头文件,并且add我们并未在函数中定义,所以我们要先将MS弄到编译器中去
在这里插入图片描述
右键引用,点击添加,将MS勾选,点击确定
在这里插入图片描述
右键我们的项目,点击属性
在这里插入图片描述
在c/c++常规中找到附加包含目录(这里就可以添加我们的头文件了)
在这里插入图片描述
在这里点击编辑
在这里插入图片描述
点击第一个(左上角有个加号的文件夹),然后点击这三个点
在这里插入图片描述
这时候就要回到开始了,找到我们创建静态库的文件夹,然后选择这个文件(MS)
在这里插入图片描述
最后点击应用就可以
在这里插入图片描述
然后我们就可以成功运行代码了
在这里插入图片描述

重新打开vs时

有一天,你打开vs准备做会题,你突然发现,你这个题目以前做过,而且刚好被你做成了静态库,哦豁,这不就刚好可以copy一下,好的,你准备使用了
首先,你碰到了这个问题,欧克,没事,我到csdn学了怎么搞,先添加一个引用
在这里插入图片描述
然后你发现,tnnd csdn骗我,我的MS呢???
在这里插入图片描述
然后你还是先把后面步骤做完了,抱着侥幸心理运行一下
对不起,还是报错,显示无法解析add函数
在这里插入图片描述
这个问题当时困扰我半天,我后面发现,你要引用的话,这个静态库就必须在解决方案里,你只要右键解决方案,添加一个现有项目
在这里插入图片描述
找到这个打开就可以了
在这里插入图片描述
这时候你发现引用里面又有了,然后勾选,就可以正常运行了。
你想,那不是每次都要去把这个打开吗,不会很麻烦吗?其实你也可以这样,打开你静态库的文件夹,找到这个MS.h这个文件,就时这个右下角有红标的
在这里插入图片描述
同时要找到前面提到的.lib文件,就在上图的debug里面
在这里插入图片描述
把这个两个文件复制到你这个项目的文件夹里,保证它们和这个源文件(.cpp)在同一个文件夹里就好
在这里插入图片描述

然后再你的代码中加入这样一段

#pragma comment(lib,“静态库名字.lib”)

这样你就可以不引用也可以正常使用了
在这里插入图片描述

总结

以上就是我关于vs2019建立静态库的见解,但由于我学疏才浅,对很多都不了解,其中看了很多大佬写的文章,但仍有很多不了解的地方,如果文章中有错误,希望各位大佬不吝赐教。尤其是最后那里,如果大佬们有更好的方法,希望可以教教我。

  • 15
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会当凌绝顶丶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值