Win32 - 制作静态库

发布时间 2023-10-09 18:06:39作者: [BORUTO]

1. 制作静态库

一.如何制作一个静态库

        注意:!!!!!如果你的静态库是C语言编写的,仅仅经过下述操作,你引用这个静态库也得是在C语言的环境下,如果你的静态库是C++写的,你引用这个静态库也得在C++的环境下

1.打开vs2019,选择静态库

选择静态库并创建

3.选择属性->C++->预编译头->不使用预编译头

4.这个时候把IDE给你创建好的文件全部删除,我们先不使用他们

5.创建testLib.h和testLib.cpp文件

 

 6.编写代码(不用包含main函数,因为我们不用让他跑起来)

testLib.h

int add(int a, int b);
int sub(int a, int b);
int mul(int a, int b);
int div(int a, int b);

testLib.c

#include "testLib.h"

int add(int a, int b)
{
	return a + b;
}
int sub(int a, int b)
{
	return a - b;
}
int mul(int a, int b)
{
	return a * b;
}
int div(int a, int b)
{
	return a / b;
}

代码写完了检查无误,我们点击生成解决方案,如果你的代码没有问题,就可以在工程文件夹的Debug目录下找到刚刚生成的.lib文件

这个时静态库就已经制作完成了。

 

2. 使用静态库

为了让库跟着项目走我们可以在工程目录下创建一个文件夹取名叫staticLib,然后在里面分别创建两个文件夹叫includelib文件,include文件夹存放头文件,lib文件存放静态库文件

 

附加include目录,打开项目属性-》C/C++-》附加包含目录,把include文件夹的路径包含进去,

注意:这里我们写的是绝对路径,可以写相对路径:..\staticLib\include

附加lib目录,链接器-》附加库目录,把lib文件夹的路径包含进去

注意:这里我们写的是绝对路径,可以写相对路径:..\staticLib\lib

 

测试代码,编译+运行,此时会发现报错了,是因为add()函数只有声明没有实现,这个时候需要引入静态库

 

方法1:引入静态库

使用#pragma comment(lib,"StaticLib1.lib")

#include <stdio.h>
#include <testLib.h>

//#pragma comment(lib,"StaticLib1.lib")

int main()
{
	int a = 55;
	int b = 45;

	printf("%d+%d = %d\n", a, b, add(a, b));
	printf("%d-%d = %d\n", a, b, sub(a, b));
	printf("%dx%d = %d\n", a, b, mul(a, b));
	printf("%d/%d = %d\n", a, b, div(a, b));

	return 0;
}

运行结果:

 

 方法2:引入静态库

包含静态库名

这个时候可以去掉#pragma comment(lib,"StaticLib1.lib")了。

运行结果: