lib库实际上分为两种,一种是静态链接lib库或者叫做静态lib库,另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的,很多人都分不清楚,很容易混淆。
- 第一种是静态lib,包含了所有的代码实现的,是源代码文件.c或.cpp文件编译生成的,这个lib库就是文本形式的源代码编译后的二进制形式代码。
- 第二种就是lib导入库,这个库只是dll文件中的所有函数在dll文件中的地址的说明。
1. 如何生成静态链接lib库
VS中新建空项目,注意静态链接库中不要有main函数,只放供别人调用的函数接口。
utils.h:
#include <iostream>
using namespace std;
int add_fun(int a, int b);
utils.cpp:
#include "utils.h"
int add_fun(int a, int b)
{
int c = a + b;
return c;
}
Release下生成解决方案后,会在Release文件夹下生成lib文件 。
2. 如何使用静态链接lib库
将头文件utils.h和静态链接lib库拷贝到其它工程,将头文件添加至该工程,将静态链接lib库导入进来:
新建main.cpp并运行:
#include "utils.h"
int main()
{
int a = 3;
int b = 8;
int c = add_fun(a, b);
cout << c << endl;
}
lib库知识全面讲解(.lib、.dll)