Windows下静态库的创建和使用

环境:VS2010

1.首先创建一个项目取名为staticlib

2.在解决方案资源管理器中添加一个叫mylib.h的头文件,在源文件中添加mylib.c(名称由自己定)

#include"mylib.h"

int myAdd(int a, int b)
{
	return a + b;
}
#include<stdio.h>

int myAdd(int a,int b);

如何配置静态库呢?

首先右键项目-->属性-->常规-->配置类型-->右边下拉选择静态库-->应用

此时不需要运行这个项目,只需要生成就行了。生成成功后,它会告诉你生成了一个.lib的文件

这个文件在哪呢?

右键这个.c文件,打开当前文件夹,返回上一级,发现有个debug文件夹

这时候拷贝给别人,别人就能用了,一般还会把.h文件一起拷,为什么呢?因为这个.lib文件打开后是看不懂的,配合.h用户才能知道你这里面都有什么函数可以使用,一般.h文件中会详细说明函数的含义,使用方法,参数说明等。

扫描二维码关注公众号,回复: 12229337 查看本文章

这时我们做一个静态库的测试。

1.首先我们新建一个项目testlib

2.将.lib和.h文件拷贝到我们这个本项目.c同一目录下

3.这时可以将上面的东西添加到本项目里(右键项目-->添加现有项,将这两个添加进来)

如图所示:

#include<stdio.h>

#include"mylib.h"
int main()
{
	
	int ret = myAdd(10,20);
	printf("%d",ret);
	return 0;
}

静态库的优缺点:

静态库对函数库的链接是放在编译时期完成的,静态库在程序的链接阶段被复制到了程序中,和程序的运行没有关系。

程序在运行时与函数库再无瓜葛,移植方便。

浪费空间和资源,所有相关的目标文件与牵涉到的函数库被链接合成一个可执行文件。

空间浪费是静态链接的一个问题,另一个问题是静态链接对程序的更新、部署和发布也带来很多麻烦。

比如程序中所使用的mylib.lib是由一个第三方厂商提供的,当该厂商更新容量mylib.lib的时候,那么我们的程序就要拿到最新版的Mylib.lib,然后将其重新编译链接后,将新的程序整个发布给用户,这样的缺点很明显,即一旦程序中有任何模块更新,整个程序就要重新编译链接、发布给用户,用户要重新安装整个程序。

动态库的配置:https://mp.csdn.net/console/editor/html/104589061

猜你喜欢

转载自blog.csdn.net/weixin_42596333/article/details/104583934
今日推荐