vs工程动态库和静态库学习心得

原创 2016年08月30日 19:18:26
        vs下很多动态库和静态库,首先库的大概意思就是:现有的,可以复用的代码。静态库后缀为.lib(library),而动态库后缀是.dll(Dynamic Link Library)。而一个vs程序执行大概分为以下几个步骤:预编译 —— 编译——汇编——链接。

       静态库对函数的链接是在编译时期完成的,程序运行时与函数库无联系,移植方便,缺点就是浪费空间和资源。而对于动态库,编译时,不会被链接到目标代码中,在程序运行时,才会载入。动态库在内存中只拷贝一份,节约了空间。

        还得说明的是,在链接时,不管是动态库还是静态库其实都有.lib文件。对于静态库来说,.lib包含了函数声明和定义,而动态库的.lib是声明,.dll才是定义。


接下来说明lib和dll的使用

使用lib库的方法

          首先,在Visual Studio中"项目上右击->属性->连接器->常规->附加库目录"写上.lib库所在文件夹



附加库目录lib文件夹下内容图:


可以看到,里面全部是lib文件。

然后在 "项目->属性->连接器->输入->附加依赖项"中写上.lib库的名称。

测试一下:首先只加载了opencv的lib,没有加入桌面上库的.lib


运行结果:可以看到报错了


然后我们把目录中的.lib名称复制过来


再运行,成功了。


还有一种情况,在解决方案里A,B两个工程,B工程生成.lib库给A工程用,那么就右键A工程"引用->通用属性->框架和引用->添加新引用"选择B工程即可。


这里扩充一下,在添加.lib名字时,如果文件较多,则可以如下:

首先新建一个帅选器:



在帅选器中,把所有的lib拉进来。



还有一种方法:我们在.lib目录下,新建一个cmd.bat。然后输入 dir ,里面显示了所有的.lib



然后在上面右键标记,选中所有lib,按下回车键 ,然后粘贴到附加依赖项。



使用DLL方法:

一种笨方法,将需要的dll文件复制到工程文件。



其他方法参考其他网站

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C/C++(2)VS2015生成并使用自定义动态库dll/静态库lib

动态库:1.新建win32控制台应用程序DLLTEST,选中DLL(D)、预编译头(P)、导出符号(X)、自动生成了如下文件: //DLLTEST.h文件 // 下列 ifdef 块是创建使从 ...

图解如何使用VS2010和Qt导出和使用静态库,动态库

首先使用VS2010来导出一个DLL,该DLL种含有一个类,新建项目,如下图然后看资源管理器,在DLL导出类中添加要导出的函数或者类编辑要导出的类或者函数,如下:编译后生成DLL,名字就是工程名 "C...

VS2015编译OpenCV320的32位和64位动态库和静态库

欢迎使用Markdown编辑器写博客本Markdown编辑器使用[StackEdit][6]修改而来,用它写博客,将会带来全新的体验哦: Markdown和扩展Markdown简洁的语法 代码块高亮 ...

VS2015编译32位Opencv310(动态库+静态库,文末有下载链接)

利用CMake编译适合编译环境的静态以及动态库,亲测VS2015和VS2010+最新版Opencv310可用。 //这里主要编译X86 win32的静态和动态库,文末有下载链接

VS2008 动态库和静态库的生成和加载

VS2008 动态库和静态库的生成和加载   第一:动态库和静态库的生成: 1) 新建一个生成dll工程:   文件->新建->项目->Win32->Win32控制台应用程序   输入项目名...

vs2010 静态库以及动态库编译实例

最近在研究ffmpeg,所以想
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)