如何生成静态库?
1、使用vs新建空项目,我使用的是vs2017
步骤:“文件”-->“新建”-->“项目”-->“空项目”
2、添加头文件,添加源文件
注:我们现在要生成自己的math静态库,里面封装了一些简单的数学计算的方法,首先我们在头文件里面进行函数的声明,因为我们需要将头文件提供给使用者,所以只在头文件中进行函数的声明,在源文件中进行函数的定义。
2.1添加头文件
2.2头文件里面,我们简单的实现两个函数,两个整数求和以及求乘积,代码如下:
#pragma once
int Add(int a, int b);
int mutl(int a, int b);
2.3添加源文件,我们在源文件中对函数进行定义,
2.4,源文件里面的代码
int Add(int a, int b)
{
return a + b;
}
int mutl(int a, int b)
{
return a * b;
}
注:如果你在源文件中引用了其他命名空间里面的东西,就需要自己酌情加入头文件,比如:输入输出流
3,更改项目属性
右击工程名-->“属性”-->“常规”-->“配置类型”-->选择静态库-->点击“应用”
4,编译源文件
右击"main.cpp"-->“编译”
5,编译整个工程
右击工程名-->“生成”
6,因为我们是在Debug版进行的编译,所以此时在我们的工程目录的Debug文件夹里面就会生成如下文件:
.lib文件就是我们生成的静态库,但是通常我们还会生成一个Release版本,因为使用的时候,调试的环境就应该使用对应的静态库,Debug对Debug,Release对Release。
如何使用静态库?
1、我们首先去建立一个空项目:Uselib,然后在工程属性里面三个地方需要添加,
1.1“C/C++”-->“常规”-->附加包含目录
添加这个路径是因为我们在代码中需要#include "math.h"
1.2“;链接器”-->“常规”-->“附加库目录”
我们要使用我们生成的lib文件,就要告诉系统这个lib文件在哪里
1.3“链接器”-->“输入”-->“附加依赖项”,然后将我们生成的lib文件添加进去,刚才我们生成的lib文件叫做:lib1.lib
然后点击:应用,完成工程配置。
在我们Uselib工程添加源文件,代码如下:
#include <iostream>
using namespace std;
#include "math.h"
int main(void)
{
int a = 3;
int b = 2;
cout << Add(a, b) << endl;
return 0;
}
里面使用的Add函数就是我们在lib库里面的韩式,前面我们将头文件包含之后,就不用在前面声明这个Add函数了。
加入我们没有在附加依赖项里面添加lib库头文件的路径,也没有在源文件前面#include "math.h",此时我们就需要在函数的前面声明一下,但是通常我们不这么做,但是代码还是给出来,如下:
#include <iostream>
using namespace std;
//#include "mymath.h"
int Add(int a, int b);
int mult(int a, int b);
int main(void)
{
int a = 3;
int b = 2;
cout << Add(a, b) << endl;
return 0;
}