1.新建项目,创建项目和解决方案

StaticLibrary  这是静态库项目

G:\C++Learn\Library  Library文件夹用于存放库相关文件,包含静态库与后面的动态库工程和解决方案

StaticLibraryDemo  静态库解决方案名称

 2.点击下一步,出现如下界面

选择静态库,选择预编译头,如果需要使用MFC就勾选上,最后点击完成

 3.然后VS左边解决方案管理器会显示相关文件

这就是个最简单的静态库,编译生成下

4.文件夹生成了相关文件

解决方案目录:

解决方案目录下,项目文件夹StaticLibrary,Debug解决方案调试目录下面就存放了编译生成的.lib静态库

5. 给静态库项目添加一个c++类CMyMath供外部程序使用

然后分别添加二个函数,一个成员函数MathAdd 用于加法计算,一个全局函数MathSub 用于减法计算,最后编译生成

6. 给解决方案添加一个新的控制台项目用于测试静态库,创建完成后设置为启动项目

7. Test.CPP中添加相关代码

 1 // Test.cpp : 定义控制台应用程序的入口点。
 2 //
 3
 4 #include "stdafx.h"
 5 #include "../StaticLibrary/MyMath.h"  //静态库CMyMath头文件
 6
 7 #pragma comment(lib,"../Debug/StaticLibrary.lib") //引入静态库.lib文件
 8 int _tmain(int argc, _TCHAR* argv[])
 9 {
10     //使用静态库中CMyMath类,调用其中的MathAdd方法
11     CMyMath myMath;
12     int nResult = myMath.MathAdd(1,2);
13     printf("1 + 2 = %d\r\n",nResult);
14     //调用静态库中的全局函数MathSub
15     nResult = MathSub(5,1);
16     printf("5 - 1 = %d\r\n",nResult);
17     getchar();
18     return 0;
19 }

8. 编译运行Test, 查看相关信息.

控制台输出调试信息,下方的模快里只有Test.exe以及系统dll,静态库中所有代码都被打包加到Test.exe中去了,

与动态库相比静态库最明显区别就是不需要加载dll

总结:

注意:当静态库代码进行修改后,Test项目也需要重新编译生成

小技巧:当需要使用多个库的时候,可以在解决方案目录下新建个library文件夹用于存放多个库的文件,整个项目组织结构更加清晰,方便引入库

12-17 09:25