静态链接库与动态链接库的区别及Windows下的使用

前言

在使用链接库之前,如果我们想要使用其它第三方库的话,常用的方式就是通过在程序中引入相关头文件,并且在编译时指定依赖的源文件,从而编译得到可执行程序。

注意1:g++编译时,通过“-I”参数指定头文件目录时要具体的目录,不能是上层目录,然后让程序自己递归到子目录寻找。

注意2:引入头文件后,需要解决cpp文件的依赖问题,不然会报错:undefined reference。

1. 链接库

因为我们写的程序可能需要依赖一些第三方库,而第三方为了我们方便使用以及一定程度上的屏蔽源码实现,会将源代码转换成库文件,有动态链接库和静态链接库两种。

2. 静态链接库和动态链接库

2.1 静态链接库

2.1.1 Windows下静态链接库文件的后缀为 .lib,Linux下后缀为 .a。

2.1.2 直接将第三方函数链接到目标程序中,运行时不再需要库文件,目标程序可直接执行。

2.1.3 当静态库文件发生变化时,目标程序需要重新编译。

2.1.4 浪费空间,当多个程序使用同一个静态链接库,系统中会存在多个副本。

2.1.5 适用于小型应用开发。

2.2 动态链接库

2.2.1 Windows下动态链接库文件的后缀为 .dll,Linux下后缀为 .so。

2.2.2 编译时,在目标程序中使用第三方函数处做了标记;当程序运行时,才自动加载动态链接库至内存。

2.2.3 方便升级,动态链接库文件变化时无需重新编译目标程序

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值