静、动态库的封装和使用
库的基本概念
库是已经写好的、成熟的、可复用的代码。每个程序都需要依赖很多底层库,不可能每个人的代码从零开始编写代码,因此库的存在具有非常重要的意义。
在我们的开发的应用中经常有一些公共代码是需要反复使用的,就把这些代码编译为库文件。
库可以简单看成一组目标文件的集合,将这些目标文件经过压缩打包之后形成的一个文件。像在Windows这样的平台上,最常用的c语言库是由集成按开发环境所附带的运行库,这些库一般由编译厂商提供。
windows下静态库创建和使用
静态库的创建
1.创建一个新项目,在已安装的模板中选择“常规”,在右边的类型下选择“空项目”,在名称和解决方案名称中输入staticlib。点击确定。
2.在解决方案资源管理器的头文件中添加,mylib.h文件,在源文件添加mylib.c文件(添加新建项)。
3.在mylib.h文件中添加如下代码:
#ifndef MYLIB_H #define MYLIB_H int myadd(int a, int b); #endif
4.在mylib.c文件中添加如下代码:
#include"mylib.h" int myadd(int a, int b){ return a + b; }
5.配置项目属性。因为这是一个静态链接库,在项目上右键点击属性,在项目属性的“配置属性”下选择“常规”,在其下的配置类型中选择“静态库(.lib)。
6.编译生成新的解决方案,在Debug文件夹下会得到mylib.lib (对象文件库),将该.lib文件和相应头文件给用户,用户就可以使用该库里的函数了。
静态库的使用
静态库我就放在了测试项目源代码的当前目录下(就是上面生成的静态库,不过方便测试与理解,我改了个名字 mylib.lib):
方法一:配置项目属性
A、添加工程的头文件目录:工程—属性—配置属性—c/c+±–常规—附加包含目录:加上头文件存放目录。
B、添加文件引用的lib静态库路径:工程—属性—配置属性—链接器—常规—附加库目录:加上lib文件存放目录。
C 然后添加工程引用的lib文件名:工程—属性—配置属性—链接器—输入—附加依赖项:加上lib文件名。
测试代码:
#include<stdio.h> #include<stdlib.h> #include<string.h> int main() { printf("调用myadd函数:1+2=%d",myadd(1,2)); return 0; }
运行结果为: