VC 静态库与动态库静态库创建与使用
Posted fzxiaoyi
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VC 静态库与动态库静态库创建与使用相关的知识,希望对你有一定的参考价值。
1.新建项目,创建项目和解决方案
StaticLibrary 这是静态库项目
G:C++LearnLibrary 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 ",nResult); 14 //调用静态库中的全局函数MathSub 15 nResult = MathSub(5,1); 16 printf("5 - 1 = %d ",nResult); 17 getchar(); 18 return 0; 19 }
8. 编译运行Test, 查看相关信息.
控制台输出调试信息,下方的模快里只有Test.exe以及系统dll,静态库中所有代码都被打包加到Test.exe中去了,
与动态库相比静态库最明显区别就是不需要加载dll
总结:
注意:当静态库代码进行修改后,Test项目也需要重新编译生成
小技巧:当需要使用多个库的时候,可以在解决方案目录下新建个library文件夹用于存放多个库的文件,整个项目组织结构更加清晰,方便引入库
以上是关于VC 静态库与动态库静态库创建与使用的主要内容,如果未能解决你的问题,请参考以下文章