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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/466117.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

STM32f103——ILI9341

STM32f103 —— ILI9341 #ifndef ILI9341_H_ #define ILI9341_H_#include "type.h"//TFT ILI9341 #define ILI9341_SPI SPI1#define ILI9341_MOSI_GRP GPIOA #define ILI9341_MOSI_IDX GPIO_Pin_7 #define ILI9341_MOSI_LOW() GPIO_ResetBits(ILI…

利用云计算打造政务信息化及应急指挥云平台

本文转载自星光云http://www.365yun.top/news/list.asp?newsid24云计算平台提供最全面的、集成度最高的开放平台,构建和管理面向运营、运维、用户服务的云数据中心管理平台;需集成计算、存储、网络、安全及管理,能够提供满足从基础设施到应用…

《网络规划设计师考试大纲》、《网络规划设计师教程》和《系统架构设计师教程》...

《网络规划设计师考试大纲》、《网络规划设计师教程》和《系统架构设计师教程》即将与广大考生见面2009年下半年即将开考的系统架构设计师和网络规划设计师两个科目,是自2005年上半年以来首次增加的计算机资格考试高级资格考试,即自2004年以来&#xff0…

项目实战,平均负载过高,最后发现却是这个搞鬼

1.前言最近在项目上遇到负载均衡过高的问题,分析好几天,还因此移植了一个CPU检测工具,后面在小二哥的指导找到了问题原因,小二哥有些读者应该会比较熟悉,之前发的微信滑动卡顿就是他分析的,他是一个非常厉害…

虚拟机压缩

virtualbox虚拟机运行久了之后就会发现,磁盘镜像vdi文件越来越大。即使你把虚拟机中的大文件删除,这个vdi文件占用的空间还是不变。也就是说动态扩展的vdi文件只会大,不会小。那么大的文件对于备份和分享都不是很方便,所以有必要的…

checkbox保存和赋值

//货物信息中的表格内容 $.each(trG.find(td input,td select),function(i,inp){if($(inp).attr(type)checkbox){if($(inp).is(:checked)){objG[$(inp).attr(name)]1;}else{objG[$(inp).attr(name)]0;}}else{objG[$(inp).attr(name)]$(inp).val();} }) $.each($(b).find(tr:las…

QT——QT4.8.5安装与配置

Qt4.8.5安装 1、安装包 mingw32-4.4.0.7z qt-creator-windows-opensource-2.8.0.exe qt-win-opensource-4.8.5-mingw.exe 2、安装步骤 (1)、首先安装qt creator,双击qt-creator-windows-opensource-2.8.0,注意安装目录不要有空格和特殊字符, 假设安装…

ASP.NET 安全认证(四)

第四部分 Form 认证的补充 前三篇在 CSDN 论坛公布后,效果如同“神仙放屁——果然不同凡(反)响”。为感谢广大网友的热情与支持,这不,经过这一阵子的酝酿、修炼,特意准备了这第四响。 之前我们讲述的使用 F…

Linux中,文件创建的时间是怎么保存的?

今天在微信群里有人提问,如果创建一个文件,创建这个文件的时间是保存在哪里的。所以就查到了这篇文章。在介绍inode结构体之前先做一个链接文件的实验:1.创建一个普通的文件test.txt,并写入内容查看,如下2.创建test.tx…

g2o库报错

g2o库报错&#xff1a; 修改文件可写命令&#xff1a; sudo chmod 777 文件名1.cs.h error: cs.h could not the file报错的文件/usr/local/include/g2o/solvers/csparse/csparse_helper.h改为cs.h的完整路径&#xff1a; //#include <cs.h> #include "/home/z…

Flash与jsp通信类封装

今天写了一个通信类&#xff0c;可以实现和JSp进行数据交互。粘贴在一起&#xff0c;有兴趣可以尝试一下 package { //用于与网页通信的东西 import flash.net.URLLoader; import flash.net.URLRequest; import flash.events.*; import flash.net.URLVariables; import flash.n…

神琪宝贝

团队名称&#xff1a;神琪宝贝团队人员&#xff1a; 姓名&#xff1a;温广琪&#xff08;组长&#xff09;学号&#xff1a;1600802130博客&#xff1a;http://www.cnblogs.com/wenwenwgq/技术&#xff1a;C&#xff0c;Java&#xff0c;python&#xff0c;网站兴趣&#xff1a…

android性能测试工具之dumpsys

补记: MAT(memory analyzer tool )是google 推荐的进行内存使用量分析的工具. 功能全面而强大!!! 首先看一下dumpsys有哪些功能&#xff1a; dumpsys 用来给出手机中所有应用程序的信息&#xff0c;并且也会给出现在手机的状态。 dumpsys [Option] meminfo 显示内存信息 cpuin…

QT —— 应用程序发布

QT应用程序的发布 将QT应用程序打包给其他人使用&#xff0c;需要一些dll动态链接库&#xff1b;在QT的安装目录下&#xff0c;如&#xff1a;D:\QT\4.8.5\bin中寻找&#xff1b;&#xff08;发布的时候选择release版本的可执行程序&#xff09;。 步骤&#xff1a; 1、在桌面新…

Raspbian 中国软件源

花了些时间整理了目前最新的树莓派中国大陆地区的软件源&#xff0c;记下来&#xff0c;希望对大家有帮助。 中国科学技术大学Raspbian http://mirrors.ustc.edu.cn/raspbian/raspbian/ 阿里云Raspbian http://mirrors.aliyun.com/raspbian/raspbian/ 清华大学Raspbian http://…

一经度等于多少千米

一经度等于多少千米&#xff0c;数值是不确定的&#xff0c;不过&#xff0c;该数值的范围为&#xff1a;0km—111km。 经度等于多少千米&#xff0c;是和纬度有密切关系的&#xff0c;经度会随着纬度的变化而变化&#xff0c;其可以根据公式来计算&#xff0c;计算公式为&…

汇顶科技2021秋招笔试

来源于读者投稿&#xff0c;作者Angel。笔试时间&#xff1a;2020.08.24&#xff0c;20&#xff1a;00-21&#xff1a;00提醒&#xff1a;很多大公司秋招在七八月份就要投递简历&#xff0c;九月已经晚了。题型&#xff1a;通用部分单选10道 不定项选择题2道 填空题2道 开放题目…

创业版上市与SAP管理软件系统的关系

最近一直在忙于公司的业务&#xff0c;也有一些偷懒的心理&#xff0c;正在调整自已的心态&#xff0c;所以一段时间没有在自已的BLOG上留下痕迹了。由于客户提及企业目标是创业板上市的话题比较多&#xff0c;因此我一直在关注创业板上市这个内容。由于不是业内的专业人士&…

QT——设置可执行文件图标

QT设置可执行文件图标 软件编译出来的默认的可执行程序的图标是真的丑&#xff0c;建议还是换成漂亮一点的图标。&#xff08;在公司的话&#xff0c;就用公司的logo&#xff0c;需要后缀是ico的&#xff09;。如工程名为&#xff1a;mytest.pro 步骤&#xff1a; 1、创建ico…

安装opencv 、opencv_contrib的方法

安装opencv 、opencv_contrib的方法 opencv4.x版本都可以 opencv 、opencv_contrib内网下载&#xff1a; https://www.raoyunsoft.com/opencv 安装方法&#xff1a; https://copyfuture.com/blogs-details/202211191221591932 官网安装方法&#xff1a; https://docs.opencv.o…