博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
lib 和 dll
阅读量:4314 次
发布时间:2019-06-06

本文共 867 字,大约阅读时间需要 2 分钟。

dll 和 lib只有在windows平台才会出现,老是忘记他们的区别和联系,记录一下,以备不时之需,也加深一下印象.  在弄懂两者的区别之前,需要知道两个概念: static library 和 dynamical library。

一:static 和 dynamical library

static library: 是一个以.lib的文件,该文件包含了该library中的所有函数和数据, 是所有.o的集合。

dynamical library:是两个文件,一个是.lib,一个.dll。 这里的.lib只是library中导出的函数的名称和位置,而真正的函数和数据是存放在.dll文件中。

 

所以容易混淆的地方就是: static/dynamical library都含有.lib文件,但内容是不相同的。

 

二: 如何使用.lib 和 .dll

还是以static 和 dynamical library分别加以说明:

由于static library中,.lib包含了所有的函数和数据,那么在链接时,需要指定.lib的位置(可以通过Visual Studio->linker->Additional Library Directories/Additional lib)。在链接后,.lib文件就包含在可执行程序(.exe)中了,可执行程序运行时就不需要lib文件了。 缺点是:exe文件会较大

而dynamical library中将函数名称/位置和内容分开,函数名称/位置在lib中,函数内容在dll中。 而链接只需要函数名称/位置,所以只需要指定lib的位置(同上)。 在链接后,可执行程序仅仅包含library中函数的名称和位置。 在真正运行时,还是需要函数的实际内容,所以在运行时,需要通过PATH环境变量指定DLL的路径, 或者通过PostBuild将dll拷贝到当前目前。 优点是: 可执行程序比较小。

 

 

转载于:https://www.cnblogs.com/renzhezhiye/p/3443824.html

你可能感兴趣的文章
瑞柏匡丞教你如何和程序员一起愉快的玩耍
查看>>
【单调队列】Vijos P1771 瑞士轮 (NOIP2011普及组第三题)
查看>>
【模拟】NEERC15 E Easy Problemset (2015-2016 ACM-ICPC)(Codeforces GYM 100851)
查看>>
JavaBean and PreparedStatement Usage
查看>>
经典冒泡排序
查看>>
HDU1312:Red and Black(DFS)
查看>>
es6 async与await实战
查看>>
北京行——xml解析之SAX
查看>>
Oracle_创建和管理表
查看>>
Retry Pattern
查看>>
字符串反转---指针
查看>>
SyntaxError: keyword can't be an expression解决方法
查看>>
高级特性(2)-迭代
查看>>
Android上PhoneGap打包本地网站和在线网站
查看>>
HDU-2052(字符画图问题)
查看>>
jython学习笔记3
查看>>
Web测试
查看>>
模型搭建练习2_实现nn模块、optim、two_layer、dynamic_net
查看>>
使用jQuery开发datatable分页表格插件
查看>>
C语言笔记(枚举)
查看>>