1 打开vs2015,新建win32应用程序,选择静态库并取消预编译头。
2 接下来进入静态库工程目录,将Debug模式改为Release模式,在属性页-C++的代码生成选择MT或者MTD,在库管理器(管理员)中可以引入导入的第三方库的库目录和附加依赖项,然后将链接库依赖项由否改为是,引入第三方库后肯定要指定头文件目录,所以需要在C++里指定头文件目录。接下来就可以开始编写静态库了。
3 在解决方案资源管理器中的头文件右键添加新的头文件,在源文件上右键添加新的源文件,接下来开始编写静态库函数,注意静态库的函数返回值以及函数参数类型尽量使用基本的变量类型,这是为了提高静态库的兼容性,可以是C++的库供其它语言调用,例如js Java 或者Python。
cpp文件中的代码如下:
#include<iostream>
#include"lxlib.h"
using namespace std;
//函数的实现
char* getName(char* name)
{return name;
}
h文件中的代码如下:
#pragma once
//函数的声明
char* getName(char* name);
接下来点击运行,会生成静态库lib文件。
4 那么我们制作的完成静态库就是一个生成的lib文件以及上面自己编写的头文件.h,将这两个文件复制出来就是一个完整的lib库了。注意C++在什么模式下编写的lib库,只能在当前的vs版本以及模式下使用。当我们在release模式下生成的的只能在对应模式下使用,debug模式下也只能在debug模式下使用,在引入的lib文件下,C++代码生成也只能选择MT(release),或者MTD(debug);
接下来谈谈怎么使用静态lib库,有用的就是静态库的头文件及lib文件,导入第三方头文件及lib文件这里就不说了。但是要更改配置,需要与生成的lib库配置完全一致,比如lib库是在MT模式下的release下生成的,因此项目也需要改成这种模式。如果在debug模式下运行在release下生成的lib库,会出现无法解析的错误,如果在release下将运行模式改为MD,会出现运行库不匹配。
下面头文件加lib文件就是一个完整的lib库了。
接下来讲解如何调用这个lib库,我们新建一个win32控制台应用程序,新建项目的编译模式也改为release,因为lib库是在release模式下生成的。
将lib和头文件复制到调用程序test的编译目录下,就是和main函数做在cpp文件一个目录里,然后配置属性。C++导入lib库就是配置头文件和库目录以及链接器-输入里的附加依赖项,由于我把头文件和lib文件复制到test的编译目录下,因此头文件的包含目录和库目录不用配置,直接在属性-链接器-输入-附加依赖项添加库的名称C++_lib.lib。
接下来在main函数中就可以调用lib库的函数了,下面是代码实现:
#include<iostream>
//lib库头文件
#include"lxlib.h"
using namespace std;
int main()
{//调用lib库函数char* myname = getName("huanhuncao");cout << myname << endl;system("pause");return 0;
}
下面链接为资源地址:
VS2015 C++ lib静态库的制作以及调用工程文件