【Visual Studio】动态库 静态库

本文详细介绍了静态库和动态库的区别,包括它们的编译过程、优缺点,以及在VisualStudio中的使用方法。静态库的优点是装载快但可能浪费资源,动态库则具有更好的可维护性和扩展性,但需要确保DLL存在。
摘要由CSDN通过智能技术生成


什么是静态库、动态库

静态库和动态库认识

静态库:编译器将数据和函数编译为而二进制文件(.lib),在编译链接可执行文件(.exe)时,编译器从静态库中复制这些函数和数据,并把他们和应用程序的其他模块结合起来,创建最终的可执行文件(.exe),当产品发布时只需要.exe即可
动态库:DLL(Dynamic Link Library)称之为动态链接库,动态库一般包含引入库(.lib,非静态库)和.dll文件,引入库包含导出的函数和变量的符号名,.dll包含实际的函数和数据。dll中包含着程序中函数的实现,在程序调用函数时,首先载入dll,获取函数地址,然后调用,这样呢就会让程序在运行之初加载不必要的dll代码

静态库

优点

  1. 代码装载速度快,执行速度略比动态链接库快
  2. 只需保证在开发者的计算机中有正确的.LIB文件,在以二进制形式发布程序时不需考虑在用户的计算机上.LIB文件是否存在及版本问题,可避免DLL地狱等问题

缺点

  1. 容易造成资源浪费,资源对于程序而言无比重要

动态库

优点

  1. dll体积小更加节省内存
  2. DLL文件与EXE文件独立,只要输出接口不变(即名称、参数、返回值类型和调用约定不变),更换DLL文件不会对EXE文件造成任何影响,因而极大地提高了可维护性和可扩展性;
  3. 不同语言可按照约定调用同一个dll
  4. 可用于大型开发,耦合小
  5. 节约磁盘空间:当应用程序使用动态链接时,多个应用程序可以共享磁盘上单个DLL副本。相比之下,当应用程序使用静态链接库时,每个应用程序要将库代码作为独立的副本链接到可执行镜像中。

缺点

有优点当然也会有缺点

  1. 使用动态链接库的应用程序不是自完备的,它依赖的DLL模块也要存在,如果使用载入时动态链接,程序启动时发现DLL不存在,系统将终止程序并给出错误信息。
  2. 速度比静态库慢

动态库的使用(visual studio)

  1. 头文件路径:项目属性-》C/C+±》常规-》附加包含目录
  2. 动态库路径:项目属性-》链接器-》常规-》附加库目录
  3. 动态库名:项目属性-》链接器-》输入-》附加依赖项

一般而言更多的使用动态库

  1. 更容易扩展程序,对于增量跟新而言更合适
  2. 节省内存
  3. 更好的解决应用程序本地化问题
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值