VS2010,C++ 制作静态库(*.lib),并使用

简单来说,就是建立两个项目:
① Win32 Project (Win32 项目):
接口文件.h 和 实现接口文件.cpp, 按F7编译后 生成静态库 *.lib ,lib可以理解成一个可以实现功能的包
②Win32 Console Application(Win32控制台工程) :
使用 *.lib 库以及接口文件.h,用一个main函数调用,就可以实现跟之前有实现接口文件.cpp一样的功能。

编写静态库有什么好处呢?简而言之,你的函数具体实现不会泄露,别人要用你的库所实现的功能,直接调用静态库跟接口名称就可以。

详细的解释如下:
在这里插入图片描述

好啦,接下来是详细的编写静态库、使用静态库教程!!!

一、编写静态库(*.lib)
在Vs2010下,新建一个生成静态库的工程,操作:File->New->Projects->Win32 Project,点击Next,在Win32 application wizard页面中选择静态库

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
④工程名:Win32ProjectTest
工程目录:I:\VS2010\C++Project\Win32ProjectTest
在这里插入图片描述
这时你可以在工程目录下看到*.sln及*.sdf文件,没有任何源文件。
在这里插入图片描述

你可以像以前的练习那样(比如练习Polynomial)来写你的代码,为省事,可将练习Polynomial中写的PolynomialList类的3个文件(PolynomialList.cpp, PolynomialList.h,TestPolynomial.h)直接拷贝到该工程目录下(I:\VS2010\C++Project\Win32ProjectTest);
在这里插入图片描述

然后将这两个文件(PolynomialList.cpp, PolynomialList.h,TestPolynomial.h)加入到该工程,操作:Project->Add exiting item->Files,然后选择这3个文件即可:
在这里插入图片描述
可以看到,工程下已添加。(其实就是写 .h 和 .cpp 用来编译生成lib库的。)
在这里插入图片描述
注意:这里要在.cpp源文件中加入#include"stdafx.h",然后在stdafx.h文件中加入#include " PolynomialList.h"和#include"TestPolynomial.h",即把头文件 加进去

这时你就可以编译(F7)整个工程了,编译好后会看到\debug目录下有个*.lib文件,即为静态库文件。
Win32ProjectTest.lib库的目录:I:\VS2010\C++Project\Win32ProjectTest
在这里插入图片描述
注意:不像一般的C++工程,必须要有main()主函数入口。编译静态库不需要main()函数的。

二、使用静态库(*.lib)
有了静态库文件(比如名为Win32ProjectTest.lib),然后你只要PolynomialList.h,TestPolynomial.h和Win32ProjectTest.lib就可以使用PolynomialList的功能了。
这样你就可以通过头文件(PolynomialList.h,TestPolynomial.h(提供接口))及库文件(Win32ProjectTest.lib提供实现接口的库))即可发布你的程序,不必发布你的程序的实现的源代码(*.cpp),这样可以达到保护你的源代码(和知识产权)的目的。

新建一个Console application的工程,操作:File->New->Projects->Win32 Console Application;
在这里插入图片描述

在这里插入图片描述
使用静态库.lib工程的目录:I:\VS2010\C++Project\Win32ConsoleAppLibUsing
把PolynomialList.h,TestPolynomial.h及刚才生成的库文件Win32ProjectTest.lib拷贝到该工程目录下:
再将你练习PolynomialList的测试文件test.cpp(其实可以自己写)拷贝到该工程目录下:
在这里插入图片描述

将PolynomialList.h,TestPolynomial.h和test.cpp文件加入到工程,Project->Add to project->Files;
在这里插入图片描述

接下来,引入 Win32ProjectTest.lib 库到工程中,

1.1链接器
现在将Win32ProjectTest.lib加入到工程来,project->Settings…->Linker->Input(输入),在Additional Dependencies下的编辑框最后填上”Win32ProjectTest.lib”.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
1.2
接着,链接器–》常规–》附加库目录(即Win32ProjectTest.lib),填写I:\VS2010\C++Project\Win32ConsoleAppLibUsing
在这里插入图片描述
2.1 C/C++
然后,在C/C++ 下的 常规–》附加包含目录,填写Win32ProjectTest.lib库的目录,
在这里插入图片描述

现在试着编译看看。没问题了吧?运行程序,得到与当初练习PolynomialList完全一样的结果。
在这里插入图片描述
结果如下:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jasscical

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值