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

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

原文链接:https://blog.csdn.net/qq_41472037/article/details/100001322

                                        简单来说,就是建立两个项目:

① 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完全一样的结果。

结果如下:
————————————————
版权声明:本文为CSDN博主「Jasscical」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_41472037/article/details/100001322

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章