VC 静态库与动态库(一)介绍
2024-09-02 06:08:45
定义:
静态库与动态库都属于库,库从本质上来说就是种代码重用的方式。
把需要重复使用的公共代码抽离出来,生成库文件,外部程序只需包含库文件,调用相关接口即可
静态库与动态库区别:
静态库:需要库的.h和.lib文件,程序编译链接时,在链接阶段会把整个静态库打包到程序中,此时静态库就成为了程序的一部份
优点:
和动态库相比不需要带额外.dll,减少程序的依赖
运行速度快,不需要在运行期间动态加载dll
缺点:
程序体积变大,即使只使用库中一部份代码,也需要包含整个静态库
当静态库需要增加和修改代码时,需要重新编译静态库,而且包含静态库的程序也得重新编译
动态库:需要库的.dll文件,程序编译时并没有把动态库编译进来,只包含它需要的函数的引用表,在程序运行时才会加载动态库
优点:
动态库增加和修改代码方便,只要调用的函数名和参数以及返回值没有被修改,包含动态库的程序不需要重新编译
动态库在内存中只会驻留一份,多个进程使用相同动态库使用的是动态库的副本,与静态库相比节约了内存空间
缺点:
需要带.dll文件,增加了程序的依赖
运行期间需要加载dll,降低了程序运行速度
总结:
静态库:牺牲了空间效率,换取了时间效率
动态库:牺牲了时间效率,换取了空间效率
使用哪种库需要看具体需求,没有好坏之分
最新文章
- 项目管理_FindBugs的使用
- jQuery 遍历函数
- 挂载windows共享文件夹
- Bootstrap学习笔记系列3-------Bootstrap简单表单显示
- 关于OpenCart的一个小建议
- gym923B
- android webview里获取和设置cookie
- 数据库连接池配置 - Oracle,SQL Server,DB2,MYSQL,SQLLITE3
- div 布局
- HttpWebRequest结合HtmlAgilityPack实现网页form提交
- ubuntu后台运行命令行
- react-native 布局基础
- .net 常用方法
- mapbox-gl 开发包dev生成
- 实战开发-》融云tp3.2.3
- 微信小程序在开发中遇到的问题与解决方法
- JAVA_SE基础——37.main方法的详解
- Android第四次作业
- Python 之 type方法创建类
- 怎么样在windows命令下创建一个没有文件名的文件?