C++动态库和静态库的使用

本文介绍了C++动态库和静态库的概念、特性对比以及实现与使用方法。静态库在编译时与目标文件打包,生成的可执行文件体积大,升级不便;动态库在运行时加载,实现资源共享,升级简单,但可能减慢执行速度。静态库的加载需要添加包含目录和引用头文件,动态库则涉及隐式和显式加载方式。
摘要由CSDN通过智能技术生成

1. 引言

动态库和静态库是常用的C++函数内部封装方式,有必要对其有一个深入的了解。

2. 动态库与静态库的概念

C++程序编译分** 预编译** -> 编译 ->汇编 ->链接这几部组成,其中链接时做的就是将目标文件与所需的附加目标文件链接,生成可执行文件。动态与静态的区别主要就在于库链接时候的状态,具体差别如下:

  • 静态库: 在链接的时候,会和汇编文件一起打包生成一个可执行文件,成为程序的一部分。
  • 动态库:动态库在编译的时候不会有任何的变化,只有在程序运行时才会被加载到,它与执行文件是分开的,只是执行问价在某个时候调用了它。

3. 特性对比

静态库优点:

  • 可执行文件的依赖比较少,不需要额外条件依赖问价。
  • 编译阶段完成链接,代码的装载速度快。
  • 在Windows下以.lib的格式存储,在Linux下以.a的格式存储。

静态库缺点:

  • 执行文件会变大
  • 升级不方便,每次都需要重新的编译。

动态库优点:

  • 可以实现多个进程之间的资源的共享。
  • 升级时较为简单不需要重新编译
  • Windows下以.lib和.dll文件存储,Linux下以.so格式存储。

动态库缺点:

  • 运行期间加载,会减慢代码执行速度。<
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值